环境:.Net Framework 3.5
我有一个DataTable
,它可以为数据库中的同一个表带回可变数量的列,并且我正在检查列exists
以及它是否是{{1}如下所示:
这是我将null
映射到DataTable
entity
这是相当标准还是我可能会遗漏任何其他情况?其他更简洁的方法?
答案 0 :(得分:2)
使用 Doodles 扩展方法,一切都更好:
public static class DataTableExtensions
{
public static T GetValueOrDefault<T>(this DataRow row, string columnName)
{
return row.GetValueOrDefault<T>(columnName, default(T));
}
public static T GetValueOrDefault<T>(this DataRow row, string columnName, T defaultValue)
{
return row.Table.Columns[ColumnName] != null &&
row[columnName] != DbNull.Value &&
row[columnName] is T ? (T)row[columnName] : defaultValue;
}
}
用法:
var Status = row.GetValueOrDefault<Int16>("status");
或
var Status = row.GetValueOrDefault<Int16>("status", -1);