如何在数据表中查找空单元格并替换为 0
本文关键字:单元格 替换 查找 数据表 | 更新日期: 2023-09-27 18:37:23
我正在使用一个非常大的数据表,它有 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);
}
}
在
SQL 中比在 C# 代码中更好地解决问题,为查询创建一个存储过程,然后使用COALESCE
系统函数。
COALESCE
函数基本上会从左到右检查其参数中给出的一组元素,直到它发现它没有NULL
并返回它。这样,您可以将默认值0
放在COALESCE
的最后一个元素中:
create procedure spMyProc
as
begin
select
COALESCE(colName1HavingNumericDataTypeToBeChecked, 0),
COALESCE(colName2HavingNumericDataTypeToBeChecked, 0),
COALESCE(colNameNHavingNumericDataTypeToBeChecked, 0)
from tableName
end
然后在 C# 代码中,只需调用该存储过程。
如果你的colName1HavingNumericDataTypeToBeChecked
不是NULL
,它将返回colName1HavingNumericDataTypeToBeChecked
中的值。如果是NULL
,那么它将查找下一项并找到0
(不是NULL
),它将返回0
。