C# 检查C中的DBNull#
我有一个StronglyTyped数据行对象,可以这样访问它C# 检查C中的DBNull#,c#,dbnull,C#,Dbnull,我有一个StronglyTyped数据行对象,可以这样访问它 accountFilter.Currency_ID Currency_ID(Int类型)是行名称。AccountFilter是数据行。 当它给出一个值时,没有问题。但当列值为NULL时,它会给出一个DBNull异常。我想检查DBNull的值,但它不起作用 bool a = Convert.IsDBNull(accountFilter.Currency_ID.ToString()); //doesnt work 很多例子都不起作用
accountFilter.Currency_ID
Currency_ID(Int类型)是行名称。AccountFilter是数据行。
当它给出一个值时,没有问题。但当列值为NULL时,它会给出一个DBNull异常。我想检查DBNull的值,但它不起作用
bool a = Convert.IsDBNull(accountFilter.Currency_ID.ToString()); //doesnt work
很多例子都不起作用
有什么解决办法吗?你能从这里检查一下吗
accountFilter.Fields["Currency_ID"]
你能从这里查一下吗
accountFilter.Fields["Currency_ID"]
通常,类型化数据集表中的一行对于每个可为空的列都有一个
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
:
bool isnull = testTable.Rows[0].IsTestFieldNull(); // Won't compile
bool isnull = ((TestTableRow)testTable.Rows[0]).IsTestFieldNull(); // Will compile because of cast
通常,类型化数据集表中的一行对于每个可为空的列都有一个
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
:
bool isnull = testTable.Rows[0].IsTestFieldNull(); // Won't compile
bool isnull = ((TestTableRow)testTable.Rows[0]).IsTestFieldNull(); // Will compile because of cast
你说“不行”是什么意思?如果您删除.ToString()
?@RichardEv的“不起作用”会怎么样?他说,“它给出了一个DBNull异常”。您说的“不起作用”是什么意思?如果您删除.ToString()
?@RichardEv的方法是“不起作用”,他说,“它给出了一个DBNull异常”。