поиск в заполненном GridView с использованием операторов Select - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть сетка на моей веб-странице, которая связывается с листом Excel с использованием OleDb

Теперь я пытаюсь настроить его так, чтобы люди могли выполнять поиск, просто набрав слово в текстовом поле, а затем посленажатие кнопки отфильтрует все результаты, содержащие одно и то же слово в любом столбце

Мне посоветовали использовать этот код:

 protected void Button1_Click(object sender, EventArgs e)
    {
        string search = TextBox1.Text;
        OleDbConnection conn = new OleDbConnection(strConn);
        conn.Open();
        OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", conn);
        OleDbDataAdapter da = new OleDbDataAdapter();
        da.SelectCommand = cmd;            
        DataTable dt = new DataTable();
        da.Fill(dt);            
        grvCarProof.DataSource = dt.Select("CP number = ");
        grvCarProof.DataBind();

    }

то, что я не могу понять, это то, чтовид написания должен идти в моем SelectCommand ().Я на правильном пути

1 Ответ

0 голосов
/ 14 декабря 2011

Используйте DataView и его RowFilter свойство.

DataView dv=dt.DefaultView;
dv.RowFilter="[Cp Number]='value']";
grvCarProof.DataSource = dv;
grvCarProof.DataBind();

Или добавить предложение WHERE,

 OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$] where [column1]=@col1", conn);
 cmd.Parameters.AddWithValue("@col1",inputValueFromUser);
 OleDbDataAdapter da = new OleDbDataAdapter();
 da.SelectCommand = cmd;            
 DataTable dt = new DataTable();
 da.Fill(dt);            
 grvCarProof.DataSource = dt;
 grvCarProof.DataBind();
...