【发布时间】:2016-03-04 21:54:37
【问题描述】:
我正在处理一个非常大的数据表,它有 5000 行和 8000 列。在数据表中有一些空单元格。我使用下面的代码将空单元格填充为0。但是由于数据表很大,所以速度真的很慢!!!我只想问是否有其他方法代替 for 循环。
for (int i = 0; i < SP_dt.Rows.Count; i++)
{
for (int j = 0; j < SP_dt.Columns.Count; j++)
{
if (SP_dt.Rows[i][j].ToString() == "")
SP_dt.Rows[i][j] = 0;
Console.WriteLine("{0} {1}",i,j);
}
}
【问题讨论】:
-
如果您使用 DataTable,我认为没有更快的方法。如果您的任务允许,也许您应该考虑使用 SQL?您也可以尝试删除 WriteLine - 如果您每次都调用它,它将极大地影响性能。
-
我可以删除 console.writeline。但我认为这不会有太大帮助
-
是WPF的WinForms吗?
-
它是控制台应用程序
-
这应该通过 SQL 完成。 SQL 适用于基于集合的操作,与您可以在代码端复制的任何操作相比,它的速度快如闪电(而且,它非常容易......如果您有实际的 T-SQL,
COALESCE(ColumnName, 0)是您需要的功能)
标签: c# sql sql-server datatable