简体   繁体   English

使用textBox_TextChanged在dataGridView中搜索

[英]Search in dataGridView with textBox_TextChanged

I want to do search in dataGridView. 我想在dataGridView中进行搜索。 I take out my data with: 我通过以下方式取出数据:

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();
        }

for search I use: 对于搜索,我使用:

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);


    }

And when I write in texhtBox it's make me mistake: 当我在texhtBox中编写时,这使我犯了错误:

System.NullReferenceException: 'Object reference not set to an instance of an object.' System.NullReferenceException:'对象引用未设置为对象的实例。

(... as System.Data.DataTable) returned null. (...为System.Data.DataTable)返回null。

Can you someone help me? 有人可以帮我吗? How to do this to works? 如何做到这一点?

First you need to declare DataTable as an object, then ue DefaultView. 首先,您需要将DataTable声明为对象,然后声明DefaultView。 Eg 例如

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

tDAL is a method in my repo that has a query. tDAL是我的仓库中有查询的方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM