Удалите все столбцы без данных DataTable

Вы получаете эту ошибку, когда Вы вызываете функцию, которая была создана в окне, или структурируйте, это больше не существует.

, Если Вы не знаете заранее, существует ли окно все еще, можно сделать попытку/выгоду обнаружить его:

try
{
  f();
}
catch(e)
{
  if (e.number == -2146823277)
    // f is no longer available
    ...
}
12
задан Larsenal 19 November 2009 в 22:43
поделиться

1 ответ

Вы можете использовать метод Compute , например:

if (table.Compute("COUNT(ColumnName)", "ColumnName <> NULL") == 0)
    table.Columns.Remove("ColumnName");

В качестве альтернативы вы можете использовать LINQ:

if (table.AsEnumerable().All(dr => dr.IsNull("ColumnName")))
    table.Columns.Remove("ColumnName");

EDIT : Чтобы полностью ответить на вопрос:

foreach(var column in table.Columns.Cast<DataColumn>().ToArray()) {
    if (table.AsEnumerable().All(dr => dr.IsNull(column)))
        table.Columns.Remove(column);
}

Вам нужно вызвать ToArray , потому что цикл изменит коллекцию.

37
ответ дан 2 December 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: