在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;
}
这样怎么样:
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;
}