如何用上面的单元格的值替换DataTable列中的空白单元格

时间:2019-01-12 11:18:34

标签: c# datatable

是否可以将数据表中特定列中的空白单元格替换为其上方的单元格值?

例如,我有以下数据表:

--------------------
ProductCode | Color
--------------------
   00A0B    |  Red
            |  Blue
   00A0C    |  Red
            |  Black
            |  White
--------------------

它应该类似于下表:

--------------------
ProductCode | Color
--------------------
   00A0B    |  Red
   00A0B    |  Blue
   00A0C    |  Red
   00A0C    |  Black
   00A0C    |  White
--------------------

那我该怎么办呢?我需要一种非常有效的方法,因为数据量可能很大。

1 个答案:

答案 0 :(得分:1)

此代码可以满足您的要求,但是对于第一个空项目(当然您还没有输入产品代码的行),它将设置空字符串:

string code = "", nonEmpty = "";
foreach(var row in datatable.Rows)
{
    code = row["ProductCode"].ToString();
    if(!string.IsNullOrEmpty(code))
         nonEmpty = code;
    else
        row["ProductCode"] = nonEmpty;  
}

但是,您可以为nonEmpty设置一个默认值,这样,如果开头有行带有空ProductCode的行,请使用默认值进行设置。那么第一行代码应该像这样:

string code = "", nonEmpty = "DefaultPC";