2

我有一个 StronglyTyped 数据行对象,我可以像这样访问它。

accountFilter.Currency_ID

Currency_ID(Int 类型)是行名称。AccountFilter 是 DataRow。当它给出一个值时,没问题。但是当列值为 NULL 时,它会给出 DBNull Exception。我想检查 DBNull 的值,但它不起作用。

bool a = Convert.IsDBNull(accountFilter.Currency_ID.ToString()); //doesnt work

这些例子不起作用。

有什么解决办法吗?

4

2 回答 2

4

通常,类型化数据集的表中的一行IsXYZNull()对每个可为空的列都有一个方法。你有没有尝试过

bool a = accountFilter.IsCurrency_IDNull();

但是,这仅适用accountFilter于类型不是类型DataRow而是来自类型化数据集的专用数据行类型

例如:如果您有一个包含名为 的表的类型化数据集Test,则将有一个专用的表类TestTable和一个名为 的专用数据行类TestTableRow。如果Test表包含一个可为空的字段TestField,则TestTableRow该类将包含一个方法IsTestFieldNull(),因此您可以调用

bool isnull = testTable[0].IsTestFieldNull();

判断TestField第一行的字段是否TestTable testTablenull

请注意,以下内容不起作用,因为结果不是 typeTestTableRow而是 type DataRow,因此您必须将其强制转换为TestTableRow

bool isnull = testTable.Rows[0].IsTestFieldNull(); // Won't compile
bool isnull = ((TestTableRow)testTable.Rows[0]).IsTestFieldNull(); // Will compile because of cast
于 2013-01-30T14:29:59.673 回答
0

你能从这里查到吗?

accountFilter.Fields["Currency_ID"]
于 2013-01-30T14:26:07.640 回答