C# 如何根据文本框中更改的文本筛选gridview

C# 如何根据文本框中更改的文本筛选gridview,c#,sql,winforms,ado.net,C#,Sql,Winforms,Ado.net,我想根据表单中的TextBox过滤GridView。。例如,我希望当我编写ec时,它显示所有包含公司名称的行,包括ec,如果我更改文本框中的字符串,则网格视图中的数据也会更改 您在datagrid上尝试过行筛选器属性吗 (dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text); 请参阅Brad Bruce的答案以获

我想根据表单中的
TextBox
过滤
GridView
。。例如,我希望当我编写
ec
时,它显示所有包含公司名称的行,包括
ec
,如果我更改
文本框中的字符串,则
网格视图中的数据也会更改

您在datagrid上尝试过行筛选器属性吗

(dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text);

请参阅Brad Bruce的答案以获取示例。

双击您的
文本框
,然后在此处编写代码:

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\u 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;
}

为此,您可以在文本框上使用TextChanged事件。你已经试过什么了吗?好的。。但是如何使用textchanged事件。。我尝试了更多的代码,但它不起作用。不要调用
DataGridView
a
GridView
!!这是错误的,令人困惑的,肯定会得到错误的答案,浪费大家的时间。。总是用正确的名字来称呼事物!是的,要多打四个字母,但是在这里寻求帮助的时候可不是那么懒的时候-我怀疑每次击键时从数据库中提取数据是否是一个好主意。使用BindingSource比所有那些sql调用要好得多。。!是否将“字段”的名称更改为要搜索的列?