检查 DataTable 列是否存在以及是否为空
Check DataTable if a column exists and if it's null
环境:.Net Framework 3.5
我有一个 DataTable
可以为数据库中的相同 table 返回可变数量的列,我正在检查列 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);
环境:.Net Framework 3.5
我有一个 DataTable
可以为数据库中的相同 table 返回可变数量的列,我正在检查列 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);