2010-02-23 132 views
0

我有以下查询LINQ查询,其中列包含空值

Dim get_rmf_2 = From rmf In t_rmf _ 
     Where rmf!NIVP = nivp_rap 

当我运行它,我得到一个错误:

Operator '=' is not defined for type 'DBNull' and string "test". 

我怀疑这是因为在列“NIVP”数据表包含空值,我试过没有空值的同样的东西,它的工作原理。

那么我该如何做这项工作? ;列“NIVP”确实有一行“测试”,并且正常的SQL查询工作正常。

+0

什么是RMF NIVP吗?看起来您可能已将查询处理到内存中,然后对其进行评估。通常,LINQ将在数据库中执行查询并为您处理这种情况。 – smaclell 2010-02-23 16:38:02

+0

以及查询数据表(t_rmf)rmf!NIVP参照该数据表的一列。 我也会在这个问题上改变这个。 – Iulian 2010-02-23 16:40:28

回答

2

我没那么熟悉VB语法LINQ但你可以尝试这样的事情:

Dim get_rmf_2 = From rmf In t_rmf _ 
     Where Not IsDBNull(rmf!NIVP) AndAlso rmf!NIVP = nivp_rap 
+0

谢谢,它做到了。 – Iulian 2010-02-23 17:01:10