我有一个数据表,我们从一个数据库中获取值,将它们放入数据表并将它们插入另一个数据库。我正在使用sql和存储过程的执行查询方法来插入数据。如果一行有字符串或二进制数据截断错误,我们可以使用c#识别这个并在控制台上打印该行吗?
基本上,dt中的一切都很好但是当我插入它时我会得到例外。我可以获得导致异常的详细信息行吗?
任何人都可以指导我如何进行此操作吗?我需要知道引起问题的确切行。
答案 0 :(得分:0)
如果您不知道哪个特定行导致了错误,您可能需要foreach
循环播放它。
foreach(DataRow row in yourDataTable.Rows) {
//Check for the issue.
}
这将循环遍历表中的每个DataRow。你必须检查每个单独的单元格,但你不能预先循环它,你必须根据行手动完成它。例如,如果您知道每个列名称,则可以执行以下操作:
if(row["whatever"]...) // you want to check for the issue here.
你也可以这样做:
int len = yourDataTable.Columns.Count;
foreach(DataRow row in yourDataTable.Rows) {
for(int i = 0; i < len; i++) {
//Check based in row[i] for your problem.
}
}
这将遍历每一行,然后根据索引遍历每一行中的每个单元格。但是,您必须根据收到的类型进行比较,您必须根据DataTable的内容确定比较。