我输入RowFilter的文本框时出现语法错误

时间:2013-12-18 20:29:37

标签: c# sql dataview

我正在尝试在gridview中搜索数据库。当我在文本框中输入任何内容时,我收到此错误:

  

语法错误在'like'运算符

之前缺少操作数

这是代码:

private void txtGrid_TextChanged(object sender, EventArgs e)
{
    DataView dv = new DataView(dt);
    dv.RowFilter = ""+cbGrid.Text + " like '%" + txtGrid.Text + "%'";
    gridPlayers.DataSource = dv;
}

我认为它可能是',但我搜索并阅读了我能找到的所有其他相关问题。

1 个答案:

答案 0 :(得分:1)

听起来cbGrid.Text是一个空字符串。如果缺少操作数,那是因为没有提供(它是空白的)。

可能的解决方案是确保仅在值不为空时运行过滤器,或者为其指定默认值。

private void txtGrid_TextChanged(object sender, EventArgs e)
{
    if (!string.IsNullOrWhiteSpace(cbGrid.Text))    
    {
        // only run when not empty
        DataView dv = new DataView(dt);
        dv.RowFilter = ""+cbGrid.Text + " like '%" + txtGrid.Text + "%'";
        gridPlayers.DataSource = dv;
    }
}