使用C#,我得到了例外:
System.Data.EvaluateException:无法执行' =' System.String和System.Int32上的操作。
我已将其追溯到此代码:
foreach (DataRow rows in dt.Rows){
...etc
string filter = string.Format("CUST_ID = " + rows[0]);
DataRow[] row = dt.Select(filter);
在foreach
之后,我转到使用linq的bool来查找DT中具有相同CUST_ID
的记录是否存在于另一个数据表中。如果为false则转到字符串过滤器。在这里,我获取第二个数据表中不存在的所有记录,并使用SqlBulkCopy将它们全部放在数据库中。
编辑:
其中一条记录有CUST_ID
= 998947,会抛出异常。
我将CUST_ID
更改为987654,没有例外。
答案 0 :(得分:3)
您应该用撇号括起输入。此外,使用String.Format时,请提供格式字符串及其参数。不只是字符串,那么String.Format调用是无用的。试试这个:
string filter = String.Format("CUST_ID = '{0}'", rows[0].ToString());
编辑:对不起,误读了你的问题。如果您的列是整数类型,请不要关心撇号。该异常告诉您正在尝试将字符串与int进行比较。如果你确定,他们是int,只是我的代码审查很少:
string filter = String.Format("CUST_ID = {0}", rows[0].ToString());
您也可以尝试将CUST_ID转换为字符串并将其与您的值进行比较,但这不是一个很好的解决方案。