gpt4 book ai didi

c# - ADO.Net - 将 DataRow 添加到 DataTable 时截断列数据

转载 作者:太空宇宙 更新时间:2023-11-03 16:41:18 24 4
gpt4 key购买 nike

这是我在 Stackoverflow 上的第一篇文章。

我正在从一个平面文件(逗号分隔)中读取数百万行,并迭代每个读取行,然后迭代每一行的每一列。每列的迭代是为了允许执行用户定义的转换、默认值、特殊字符的删除等。当前的实现非常有效。

数据的读取以 20k 为单位进行。当我处理读取的行时,我对内存中的 DataTable 发出 NewRow() 调用。然后我开始迭代每一列以删除它们的值。当我处理行列时,我试图尽可能地减少。

我的问题是这样的。如果从平面文件中读取的值(在本例中为文本)比目标 DataTables DataColumn 的 MaxLength 长,我会在发出以下命令时收到异常说明:

dataTable.Rows.Add(newRow);

有没有办法告诉 ADO.Net(或我的内存中 DataTable)截断数据而不是提示?

同样,我可以轻松地在循环中添加逻辑来为我执行此检查/截断,但是当您处理数百万行数据时,这些事情会加起来。

最佳答案

像这样的东西应该可以工作:

var newRow = dataTable.NewRow();

...
...

if(YourText.Length < ColumnMaxLength)
{
newRow["YourLimitedColumnName"] = YourText;
}
else
{
newRow["YourLimitedColumnName"] = YourText.Substring(0, ColumnMaxLength);
}

...
...

dataTable.Rows.Add(newRow);

关于c# - ADO.Net - 将 DataRow 添加到 DataTable 时截断列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7436809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com