我如何根据文本框中更改的文本过滤 gridview
How can i filter gridview depend on text changed in text box
我想过滤 GridView
取决于表格中的 TextBox
.. 我想当我写例如 ec
它显示公司名称的所有行包括 ec
那么如果我更改 TextBox
中的字符串,数据也会在 GridView
中更改。
您是否在数据网格上尝试过行过滤器 属性?
(dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text);
查看 Brad Bruce 的回答 here 作为示例。
双击您的 TextBox
并在此处编写代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
string sql = "SELECT * FROM Table WHERE Name LIKE @Name";
using (SqlCommand cmd= new SqlCommand(sql, cn))
{
cmd.Parameters.AddWithValue("@Name", "%" + textBox1.Text + "%");
//rest of the code
//dataGridView.DataSource = your DataSource;
}
}
编辑:为避免在每次击键时从数据库中提取数据,请在textBox1_TextChanged
事件中尝试此操作:
DataSet ds = new DataSet();//Populate ds from a SqlDataAdapter
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = string.Format("name LIKE '%{0}%'", textBox1.Text);
dataGridView1.DataSource = dv;
}
我想过滤 GridView
取决于表格中的 TextBox
.. 我想当我写例如 ec
它显示公司名称的所有行包括 ec
那么如果我更改 TextBox
中的字符串,数据也会在 GridView
中更改。
您是否在数据网格上尝试过行过滤器 属性?
(dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text);
查看 Brad Bruce 的回答 here 作为示例。
双击您的 TextBox
并在此处编写代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
string sql = "SELECT * FROM Table WHERE Name LIKE @Name";
using (SqlCommand cmd= new SqlCommand(sql, cn))
{
cmd.Parameters.AddWithValue("@Name", "%" + textBox1.Text + "%");
//rest of the code
//dataGridView.DataSource = your DataSource;
}
}
编辑:为避免在每次击键时从数据库中提取数据,请在textBox1_TextChanged
事件中尝试此操作:
DataSet ds = new DataSet();//Populate ds from a SqlDataAdapter
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = string.Format("name LIKE '%{0}%'", textBox1.Text);
dataGridView1.DataSource = dv;
}