// usage
var name = GetValueOrDefault<string>(reader, "Name");
var name = reader.GetValueOrDefault<string>("Name");
var name = reader.GetValueOrDefault<string>(0);
// extension
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));
}
Technorati tags:
C-Sharp,
ADO.Net,
CodeProject-Tip
I just needed to say it out loud.
If you don't know what I mean then count yourself lucky that you don't know what I mean.
If you do know what I mean, then I am just saying what you are thinking every time you have to write special case code inside special case code.
fuck opera.