使用textBox_TextChanged在dataGridView中搜索

时间:2019-01-13 17:03:25

标签: c# winforms search datagridview textbox

我想在dataGridView中进行搜索。我通过以下方式取出数据:

private void button1_Click(object sender, EventArgs e)
        {
            FileStream f1 = new FileStream("zapis.dat", FileMode.Open);
            BinaryReader br = new BinaryReader(f1);
            int а = 0;
            while (f1.Position < f1.Length)
            {
                string data = br.ReadString();
                string sing = br.ReadString();
                string avtor = br.ReadString();
                string zagl = br.ReadString();
                string janr = br.ReadString();
                string ezik = br.ReadString();
                dataGridView1.Rows.Add(++а, sing, avtor, zagl, janr, ezik, data);
            }
            f1.Close();
        }

对于搜索,我使用:

private void textBox1_TextChanged(object sender, EventArgs e)
    {
        (dataGridView1.DataSource as DataTable).DefaultView.RowFilter =
string.Format("Name LIKE '{0}%' OR Name LIKE '% {0}%'", textBox1.Text);


    }

当我在texhtBox中编写代码时,我会犯错:

  

System.NullReferenceException:'对象引用未设置为   对象的实例。'

     

(...作为System.Data.DataTable)返回null。

有人可以帮我吗?如何做到这一点?

1 个答案:

答案 0 :(得分:0)

首先,您需要将DataTable声明为对象,然后声明DefaultView。 例如

            DataTable dt = tDAL.Search(keyword);
        dgvTalents.ItemsSource = dt.DefaultView;

tDAL是我的仓库中有查询的方法。