110

How do I check for the existence of a column in a datarow?

I'm building datatables to organize some data that I've already pulled back from the database. Depending on the type of data in each row, I need to create a datatable with different columns. Then, later on, I want to check and see if the datatable I am looking at has a certain column.

I know I can catch the exception and handle it that way, but I'm curious if there is a property or method on the datarow object that will do this for me?

Here's how I can do it by catching the exception:

public static String CheckEmptyDataRowItem(DataRow row, String rowName, String nullValue)
{
    try
    {
        return row[rowName].ToString();
    }
    catch (System.ArgumentException)
    {
        return nullValue;
    }
}
Leniel Maccaferri
  • 100,159
  • 46
  • 371
  • 480
Tone
  • 2,793
  • 6
  • 29
  • 42

2 Answers2

215

You can simply check like this:

return row.Table.Columns.Contains(columnName);
BlueRaja - Danny Pflughoeft
  • 84,206
  • 33
  • 197
  • 283
Gaurav
  • 2,174
  • 1
  • 13
  • 3
6

DataTables have that schema info, so check if the Row's Table's Columns collection contains the field.

Wyatt Barnett
  • 15,573
  • 3
  • 34
  • 53