在数据表中选择子句



>我正在尝试在数据表中执行一些选择,但是我遇到了一些问题,因为我在某些单元格中有这样的值: 'COX-12-3SCS4CSCH

此值具有'-

我尝试进行此选择,但不起作用:

string expression = "Nivel='" + lvfin + "' AND [Nivel " + lvfin + "]='" + codActual + "'";
DataRow[] results = DataTable.Select(expression);

lvfin包含例如0,codActual包含'COX-12-3SCS4CSCH

我收到此错误:

运算符"COX"后缺少操作数

这里有什么问题?

如果您的字段名称是Nivel 0那么您需要将该零添加到常量字符串"Nivel"中,并将整个字段名称括在方括号中以形成第一个条件中使用的正确字段名称,那么,如果您搜索的值包含单引号,则需要将其加倍。所有这些都是必要的,以避免在使用单引号作为字符串值的分隔符或字段名称包含空格时混淆解析器。

所以你应该写(为了清楚起见,一行一行,但可以写在一行(:

string fieldName = "Nivel " + lvfin.ToString();
string searchValue = codActual.Replace("'", "''");
string expression = $"[{fieldName}]='{searchValue}'";
DataRow[] results = DataTable.Select(expression);

最新更新