在c#中通过多个表在dataGridView中搜索name

本文关键字:name dataGridView 搜索 | 更新日期: 2023-09-27 18:08:52

我有一个浏览按钮,可以浏览5个不同的表到DataGridView。我有一个scrollBar穿过它们。现在我需要搜索TextBox,如果我在里面写"Milk"之类的东西,它会自动找到包含该名称/单词的所有表,例如,有5个表要浏览,但现在只有3个,因为只有3个包含单词Milk。以下是我的代码,只在1个表中搜索(我只得到了那么远)。谢谢你!

private void textBox5_TextChanged(object sender, EventArgs e)
{
    DataView dv = new DataView(dt);
    dv.RowFilter = string.Format("Prece LIKE '%{0}%'", textBox5.Text);
    dataGridView1.DataSource = dv;
}

在c#中通过多个表在dataGridView中搜索name

这样怎么样:

private void textBox5_TextChanged(object sender, EventArgs e)
{
     // Your gridViews here
     var gridList = new List<DataGridView>() { yourGrid1, yourGrid2};
     foreach(DataGridView dv in gridList)
     {
         dv.RowFilter = string.Format("Prece LIKE '%{0}%'", textBox5.Text);
         dataGridView1.DataSource = dv;
     }
}

将您的DataGridViews添加到列表中,并让它遍历它们。你只需要处理如何输出它。

注意,我没有在这里编辑你的搜索方法。我刚刚添加了循环

如果你有一个DataGridView和所有的数据表是相同的

private void textBox5_TextChanged(object sender, EventArgs e)
        {           
            DataView dv = new DataView(dt);
            dv.RowFilter = string.Format("Prece LIKE '%{0}%'", textBox5.Text);
            DataTable dtMain=dv.ToTable().Copy();
            dv = new DataView(dt2);
            dv.RowFilter = string.Format("Prece LIKE '%{0}%'", textBox5.Text);
            dtMain.Merge(dv.ToTable());
            dv = new DataView(dt3);
            dv.RowFilter = string.Format("Prece LIKE '%{0}%'", textBox5.Text);
            dtMain.Merge(dv.ToTable());
            dataGridView1.DataSource = dtMain;
        }