【发布时间】:2014-12-18 22:31:01
【问题描述】:
使用 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 之后,我转到一个 bool,它使用 linq 来查找在 DT 中具有相同 CUST_ID 的记录是否存在于另一个数据表中。如果为假,那么我转到字符串过滤器。在这里,我将第二个数据表中不存在的所有记录都取出来,并使用 SqlBulkCopy 将它们全部放入数据库中。
有趣的是,只有满手的唱片是行不通的。其中大约有 7000 个,大约 50 个会导致此异常。我看不出记录之间有什么区别。所以,我不确定我错过了什么。
编辑:
其中一条记录有 CUST_ID = 998947,这会引发异常。
我将CUST_ID 更改为987654,没有例外。
【问题讨论】:
-
代码在哪一行抛出?
-
CUST_ID 字段的数据类型是什么?