Как заменить пустые ячейки в столбце DataTable значением вышеуказанной ячейки - PullRequest
0 голосов
/ 12 января 2019

Можно ли заменить пустые ячейки в определенном столбце в DataTable значением ячейки над ним?

Например, у меня есть следующая таблица данных:

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

И это должно быть похоже на следующую таблицу:

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

Так как я могу это сделать? Мне нужен очень эффективный метод, так как объем данных может быть большим.

1 Ответ

0 голосов
/ 12 января 2019

Этот код делает то, что вы хотите, но, конечно, для первых пустых элементов (пока вы еще не попали в строку с кодом продукта), он установит пустую строку:

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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...