【问题标题】:How to check if Datarow value is null如何检查 Datarow 值是否为空
【发布时间】:2015-02-08 11:19:57
【问题描述】:

请告诉我,如果需要返回 string,这是在 DataRow 中检查 NULL 的正确方法

 Convert.ToString(row["Int64_id"] ?? "")

或者应该像检查 DBNull.Value。

需要比小很多的

if(row["Int64_id"] != DBNull.Value){...}else if{}

【问题讨论】:

  • row["ColumnName"] != DBNull.Value,你也可以自己尝试这样的事情。一种方法是使用调试器!

标签: c# datatable null datarow


【解决方案1】:

DataRow.IsNull(string columnName)检查数据列是否不为空

if (!row.IsNull("Int64_id"))
{
  // here you can use it safety
   long someValue = (long)row["Int64_id"];
}

如果使用列的index 或者如果您有DataColumn 的实例,则会对其进行重载。如果您确定index,请使用比其他选项更快的索引版本。

【讨论】:

  • 返回类型 string 和小得多
  • 检查该值是否是正确的方法。 :)
【解决方案2】:

我们创建了一个扩展类来帮助解决这些情况。

public static class DataRowExtensions
  {
    public static T FieldOrDefault<T>(this DataRow row, string columnName)
    {
      return row.IsNull(columnName) ? default(T) : row.Field<T>(columnName);
    }
  }

你可以使用如下:

int id = dataRow.FieldOrDefault<int>("Id");

【讨论】:

  • 你会如何把它放在 foreach 的外面?
猜你喜欢
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多