从DataRow中获取价值的最佳方式是什么?

本文关键字:最佳 方式 是什么 DataRow 获取 | 更新日期: 2023-09-27 18:17:52

所有,我试图找到一种优雅的方式来检索值从DataRow。下面是我尝试过的方法。我认为它不够好。因为当我想要检索的字段数量很大时,它会很冗长。有更好的主意吗?谢谢。

  int result = -1;
  if (row["intCol"] != null)
  {
      bool bresult = int.TryParse(row["intCol"].ToString(), out result);
  }

数据库中intCol数据类型为可空字符串。

发现它从最有效的方式来检查DBNull,然后分配给一个变量?

欢呼。

从DataRow中获取价值的最佳方式是什么?

使用Field, IsNull, SetField方法来避免处理DBNull.Value

在你发布的例子中,你可能只需要Field:

int? result = row.Field<int?>("intCol");
// if intCol is DBNull.Value, result will now be null.

您可以使用内置的Field<int?>属性来获取结果:

var result = row.Field<int?>("intCol");

您可以使用Convert(特别是如果类型也可能是BIGINT, smallint,…)

 var i = Convert.ToInt32(row["intCol"]); // i is a int

注意,这会将NULL转换为0。

如果你非常确定DB类型是INT(而不是BIGINT, smallint,…),使用"as" (DB NULL将成为空引用)

 var i = row["intCol"] as int?; // i is a nullable int