データ リーダーから厳密に型指定された値を取得することに関するすべての懸念事項を適切にまとめるいくつかの拡張メソッドを次に示します。値が DbNull の場合、タイプのデフォルトが返されます。which がクラスの場合string、 anullが返されます。フィールドが の場合、intが0返されます。int?さらに、 null 許容の int フィールドなどからを期待している場合は、null返されます。
Kumar の場合の特定の使用法:
string abc = datareader.GetValueOrDefault<string>(0);
一般的な使用法
var name = GetValueOrDefault<string>(reader, "Name");
また
var name = reader.GetValueOrDefault<string>("Name");
また
var name = reader.GetValueOrDefault<string>(0);
拡大
public static class NullSafeGetter
{
public static T GetValueOrDefault<T>(this IDataRecord row, string fieldName)
{
int ordinal = row.GetOrdinal(fieldName);
return row.GetValueOrDefault<T>(ordinal);
}
public static T GetValueOrDefault<T>(this IDataRecord row, int ordinal)
{
return (T)(row.IsDBNull(ordinal) ? default(T) : row.GetValue(ordinal));
}
}
http://skysanders.net/subtext/archive/2010/03/02/generic-nullsafe-idatarecord-field-getter.aspxから