首页 > 解决方案 > 使用 textBox_TextChanged 在 dataGridView 中搜索

问题描述

我想在 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:“对象引用未设置为对象的实例。”

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

你能帮我吗?如何做到这一点?

标签: c#winformssearchdatagridviewtextbox

解决方案


首先你需要将DataTable声明为一个对象,然后ue DefaultView。例如

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

tDAL 是我的仓库中的一种方法,它有一个查询。


推荐阅读