C# 在文本框中键入行筛选器时出现语法错误
我正在尝试在gridview中搜索数据库。在文本框中键入任何内容时,会出现以下错误: 语法错误“like”运算符前缺少操作数 代码如下:C# 在文本框中键入行筛选器时出现语法错误,c#,sql,dataview,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 + "%'"; gridPlay
private void txtGrid_TextChanged(object sender, EventArgs e)
{
DataView dv = new DataView(dt);
dv.RowFilter = ""+cbGrid.Text + " like '%" + txtGrid.Text + "%'";
gridPlayers.DataSource = dv;
}
我原以为可能是
”
,但我已经搜索并阅读了我能找到的所有其他相关问题。听起来像是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;
}
}
cbGrid.Text的内容是什么?可能是当
cbGrid.Text
为空字符串时函数启动。您需要为该字符串构建一个解析器,以便可以清除行筛选器中的任何“非法”字符。您完全正确,错误主要是因为组合框开始为空。。。很好的解决方案。然而,当我搜索我的三行中的一行时,仍然会发生错误,它们都是nvarchar(30),我刚刚在将该行添加到组合框中时发现了拼写错误,问题得到了解决……非常感谢大家:)