我有一个 StronglyTyped 数据行对象,我可以像这样访问它。
accountFilter.Currency_ID
Currency_ID(Int 类型)是行名称。 AccountFilter 是 DataRow。 当它给出一个值时,没问题。但当列值为 NULL 时,会给出 DBNull 异常。我想检查 DBNull 的值,但它不起作用。
bool a = Convert.IsDBNull(accountFilter.Currency_ID.ToString()); //doesnt work
非these示例不起作用。
有什么解决办法吗?
最佳答案
通常,类型化数据集表中的一行具有 IsXYZNull()
每个可空列的方法。你试过吗
bool a = accountFilter.IsCurrency_IDNull();
然而,这仅在 accountFilter
时有效。不是 DataRow
类型而是来自类型化数据集的专用数据行类型。
例如:如果您有一个类型化数据集,其中包含名为 Test
的表,会有一个专门的表类TestTable
和一个名为 TestTableRow
的专用数据行类。如果Test
表包含可为空字段 TestField
,TestTableRow
类将包含一个方法 IsTestFieldNull()
,这样你就可以调用
bool isnull = testTable[0].IsTestFieldNull();
判断是否TestField
TestTable testTable
第一行中的字段是null
.
请注意,以下内容不起作用,因为结果不是 TestTableRow
类型但属于 DataRow
类型,所以你必须将其转换为 TestTableRow
:
bool isnull = testTable.Rows[0].IsTestFieldNull(); // Won't compile
bool isnull = ((TestTableRow)testTable.Rows[0]).IsTestFieldNull(); // Will compile because of cast
关于c# - 在 C# 中检查 DBNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14606029/