[英]Check DataTable if a column exists and if it's null
环境:.Net Framework 3.5
我有一个DataTable
,它可以为数据库中的同一张表带回可变数量的列,并且我正在检查该列是否exists
,如果exists
,则为null
,如下所示:
这是我将DataTable
映射到entity
Status = dt.Columns["Status"] != null ? row["Status"] == DBNull.Value ? 0 : Convert.ToInt16(row["Status"]) : 0,
这很标准吗?或者我可能会错过其他情况? 其他更简洁的方法?
使用
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.