Записи с тегом «ADO.NET»

Extension-методы для DataRow и DataTable

04.03.2011 20:21 / Артём Волк / 504 просмотра / ...

Долгое время использовал такую конструкцию если нужно было получить данные из нетипизированного DataRow:

var temp = Convert.ToInt32(row["SomeField"]);

В случае, когда нужно было обработать nullable-поля, то использовался вот такой метод:

/*
 * Taken from: http://stackoverflow.com/questions/209160/nullable-type-as-a-generic-parameter-possible
 */
public static Nullable<T> GetValueOrNull<T>(DataRow row, string key) where T : struct
{
	object columnValue = row[key];

	if (!(columnValue is DBNull))
		return (T)columnValue;

	return null;
}

...

int? temp = GetValueOrNull<int>(row, "SomeField");

Оказалось, что есть более простой способ с использованием extension-метода Field<>():

int temp = row.Field<int>("SomeField");

Для класса DataTable есть свой набор полезных расширений