我有一个StronglyTyped数据Row对象,我可以像这样访问它。
accountFilter.Currency_ID
Currency_ID(Int的类型)是行名称。 AccountFilter是DataRow。 当它给出一个值,没问题。但是当列值为NULL时,它会给出DBNull异常。我想检查DBNull的值,但它不起作用。
bool a = Convert.IsDBNull(accountFilter.Currency_ID.ToString()); //doesnt work
非these个例子不起作用。
任何解决方案?
答案 0 :(得分:4)
通常,类型化数据集的表中的行对每个可空列都有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
答案 1 :(得分:0)
你能从中查看吗?
accountFilter.Fields["Currency_ID"]