Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以Excel作为数据搜索Datagridview_C#_Excel - Fatal编程技术网

C# 以Excel作为数据搜索Datagridview

C# 以Excel作为数据搜索Datagridview,c#,excel,C#,Excel,我已经将数据从excel工作表提取到datagridview,这很好,但我已经创建了一个搜索框,我无法让它工作 private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)13) { DataView dv = new DataView(dt); dv.RowFilter = "Site Name LIKE '%" + tex

我已经将数据从excel工作表提取到datagridview,这很好,但我已经创建了一个搜索框,我无法让它工作

private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13)
    {
        DataView dv = new DataView(dt);
        dv.RowFilter = "Site Name LIKE '%" + textBox2.Text + "%'";
        dataGridView1.DataSource = dv.ToTable();
    }
}
我在
dv.Rowfilter
上遇到错误

语法错误:“Name”运算符后缺少操作数

字符串“Site Name”不是正确的列名。你一定有“站点名称”之类的东西;只要纠正同样的错误

dv.RowFilter = "Site_Name LIKE '%" + textBox2.Text + "%'";
或者,将列名用方括号括起来,如下所示:

dv.RowFilter = "[Site Name] LIKE '%" + textBox2.Text + "%'";
请参阅:
顺便说一下,您似乎正在将所有数据加载到DataTable中,然后对其进行过滤。这真的需要吗?您可以考虑使用OLeDB提供程序并使用过滤器,同时将数据从Excel加载到DATACAT本身。这样,在DataTable中得到的任何内容都会被过滤。请参阅: