如何在数据表中查找空单元格并替换为 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);
    }
}

如何在数据表中查找空单元格并替换为 0

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