这是我在Stackoverflow上的第一篇文章 .
我正在从平面文件(逗号分隔)中读取数百万行,并迭代每个读取行,然后迭代每行的每一列 . 每列的迭代是允许执行用户定义的转换,默认值,删除特殊字符等 . 目前的实施非常有效 .
数据的读取分批完成20k . 当我正在处理读取行时,我在内存中的DataTable上发出一个NewRow()调用 . 然后我开始迭代每一列来擦除它们的值 . 我正在尝试在处理行列时尽量减少 .
我的问题是这个 . 如果从平面文件读取的值(本例中为文本)长于目标DataTables DataColumn的MaxLength,则会在发出以下内容时收到异常,说明如下:
dataTable.Rows.Add(newRow);
有没有办法告诉ADO.Net(或我的内存中的DataTable)截断数据而不是抱怨?
同样,我可以轻松地在循环中添加逻辑来为我执行此检查/截断,但是当您处理数百万行数据时,这些事情会增加 .
1 回答
这样的事情应该有效: