如果列存在且是否为空,请检查DataTable

时间:2018-03-15 13:48:07

标签: c# ado.net

环境:.Net Framework 3.5

我有一个DataTable,它可以为数据库中的同一个表带回可变数量的列,并且我正在检查列exists以及它是否是{{1}如下所示:

这是我将null映射到DataTable

的时候
entity

这是相当标准还是我可能会遗漏任何其他情况?其他更简洁的方法?

1 个答案:

答案 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);