[英]Check DBNull in C#
我有一个StronglyTyped数据行对象,可以像这样访问它。
accountFilter.Currency_ID
Currency_ID(整数类型)是行名。 AccountFilter是DataRow。 当它给出一个值时,没问题。 但是,当列值为NULL时,它将给出DBNull异常。 我想检查DBNull的值,但是不起作用。
bool a = Convert.IsDBNull(accountFilter.Currency_ID.ToString()); //doesnt work
这些示例均无效。
有什么办法吗?
通常,类型化数据集的表中的一行对每个可为空的列都具有IsXYZNull()
方法。 你有没有尝试过
bool a = accountFilter.IsCurrency_IDNull();
但是,仅当accountFilter
的类型不是DataRow
而是来自键入的数据集中的专用数据行类型时,此方法才有效。
例如:如果您有一个类型化的数据集,其中包含一个名为Test
的表,则将有一个专门的表类TestTable
和一个专门的数据行类TestTableRow
。 如果Test
表包含可为空的字段TestField
,则TestTableRow
类将包含方法IsTestFieldNull()
,因此您可以调用
bool isnull = testTable[0].IsTestFieldNull();
确定TestTable testTable
第一行中的TestField
字段是否为null
。
请注意,以下操作不起作用,因为结果不是TestTableRow
类型,而是DataRow
类型,因此您必须将其TestTableRow
为TestTableRow
:
bool isnull = testTable.Rows[0].IsTestFieldNull(); // Won't compile
bool isnull = ((TestTableRow)testTable.Rows[0]).IsTestFieldNull(); // Will compile because of cast
您可以从中检查吗?
accountFilter.Fields["Currency_ID"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.