ADO.NET DataRow - sprawdź istnienie kolumny

108

Jak sprawdzić, czy w wierszu danych istnieje kolumna?

Buduję zbiory danych, aby uporządkować niektóre dane, które już pobrałem z bazy danych. W zależności od typu danych w każdym wierszu, muszę utworzyć datatable z różnymi kolumnami. Następnie chcę sprawdzić i zobaczyć, czy oglądany przeze mnie datatable ma określoną kolumnę.

Wiem, że mogę złapać wyjątek i obsłużyć go w ten sposób, ale jestem ciekawy, czy istnieje właściwość lub metoda obiektu datarow, która zrobi to za mnie?

Oto, jak mogę to zrobić, przechwytując wyjątek:

public static String CheckEmptyDataRowItem(DataRow row, String rowName, String nullValue)
{
    try
    {
        return row[rowName].ToString();
    }
    catch (System.ArgumentException)
    {
        return nullValue;
    }
}
Ton
źródło
5
rowName to zła nazwa dla nazwy kolumny
paparazzo

Odpowiedzi:

212

Możesz po prostu sprawdzić w ten sposób:

return row.Table.Columns.Contains(columnName);
Gaurav
źródło
6

DataTables mają te informacje o schemacie, więc sprawdź, czy kolekcja Kolumny tabeli wiersza zawiera pole.

Wyatt Barnett
źródło