我想使用文本框从数据表中搜索数据,并将其显示到datagridview(datatable是datagridview的数据源)。 我尝试使用此代码:
DataTable table = new DataTable();
private void button1_Click(object sender, EventArgs e)
{
XmlDocument xdoc = new XmlDocument();
xdoc.Load(@"C:\ABC.xml");
table.Columns.AddRange(new DataColumn[3] { new DataColumn("Name"), new DataColumn("Id"), new DataColumn("MobileNo.") });
XmlNodeList path = xdoc.DocumentElement.SelectNodes("Data");
foreach (XmlNode node in path)
{
String name= node.Attributes["name"].Value;
String id= node.Attributes["id"].Value;
String number= node.Attributes["no."].Value;
table.Rows.Add(name, id, number);
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = table;
dataGridView1.DataSource = bindingSource;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataView dv = new DataView();
dv.RowFilter = "Name like '%" + textBox1.Text + "%'";
dataGridView1.DataSource = dv;
}
这里我从xml中获取数据,将其存储在数据表中,并将其用作datagridview的数据源。
我想使用文本框为“名称”提供搜索选项。 上述代码无法正常工作,只有数据显示在网格中,但无法搜索在文本框中输入的文本。 请帮助您解决任何其他问题。
答案 0 :(得分:0)
得到了它!
缺少数据视图的数据源。
纠正功能:
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataView dv = new DataView(table);
dv.RowFilter = "Name like '%" + textBox1.Text + "%'";
dataGridView1.DataSource = dv;
}