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

时间:2013-06-10 07:51:03

标签: c# asp.net datatable

所有,我试图找到一种优雅的方法来从DataRow中检索价值。以下是我尝试过的方式。请检查一下。我认为这还不够好。因为当我想要检索的字段数量很大时会很冗长。有什么好主意吗?感谢。

  int result = -1;

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

更新

DB中的intCol数据类型是可以为空的字符串。

更新

Most efficient way to check for DBNull and then assign to a variable?

找到它

干杯。

3 个答案:

答案 0 :(得分:2)

使用FieldIsNullSetField方法避免处理DBNull.Value

在您发布的示例中,您可能只需要Field

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

你可以使用Convert(特别是如果类型也可能是BIGINT,SMALINT,..)。

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

请注意将NULL转换为0。

如果您非常确定数据库类型是INT(而不是BIGINT,SMALINT,..),请使用“as”(DB NULL将成为空引用)

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