从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,然后分配给一个变量?
欢呼。
使用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