get index of DataTable column with name

Andy picture Andy · Jul 5, 2012 · Viewed 128.6k times · Source

I have some code which sets the value of cells in a DataRow by column name i.e.

row["ColumnName"] = someValue;

I want to also set the value for this row in the column immediately to the right of the one found above. Clearly if I was getting the cell by index rather than by column name this would be easy. So is there a way of getting the column index from the column name thus allowing me to do:

row[index + 1] = someOtherValue;

i.e. do I need create some kind of dictionary of column index and column names when the table is initially created, or can I get the index from the column name later on without doing this?

Answer

Tim Schmelter picture Tim Schmelter · Jul 5, 2012

You can use DataColumn.Ordinal to get the index of the column in the DataTable. So if you need the next column as mentioned use Column.Ordinal + 1:

row[row.Table.Columns["ColumnName"].Ordinal + 1] = someOtherValue;