如何使用文本框从数据表中搜索数据并将其显示在C#中的datagridview中?

时间:2015-02-03 11:11:17

标签: c# search datagridview datatable

我想使用文本框从数据表中搜索数据,并将其显示到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的数据源。

我想使用文本框为“名称”提供搜索选项。 上述代码无法正常工作,只有数据显示在网格中,但无法搜索在文本框中输入的文本。 请帮助您解决任何其他问题。

1 个答案:

答案 0 :(得分:0)

得到了它!

缺少数据视图的数据源。

纠正功能:

 private void textBox1_TextChanged(object sender, EventArgs e)
{
    DataView dv = new DataView(table);
    dv.RowFilter = "Name like '%" + textBox1.Text + "%'";
    dataGridView1.DataSource = dv;
}