SQL记录搜索但字段有时为NULL?

时间:2010-03-02 19:07:15

标签: sql vb.net string null

我正在尝试执行SQL查询以查看我的数据库中是否已存在地址。我的地址是这样的结构:

line1
line2
line3
city
state
zipcode
country

有时我的数据库中的line2和line3是NULL值。

我正在使用.NET TableAdapter和DataTable来进行查询。当我尝试传入我的line2参数(@ line2)时,它等于一个value = nothing的字符串。我的数据库不会将其解释为NULL并且说记录不匹配,但我知道它们会这样做吗?

如何传入一个字符串=什么都没有,并将它与数据库中的NULL值进行比较是否相等?

我尝试过string = DBNULL.value但不会编译。我使用integer = Nullable(整数)对整数等进行了类似的比较,但这对于字符串不存在。

感谢。

3 个答案:

答案 0 :(得分:1)

您需要使用DBNull.Value

答案 1 :(得分:0)

Null在大多数查询中都很特殊。通常,指定匹配null的方法是“line2 is NULL”

答案 2 :(得分:0)

使用DBNull.Value是一个开始,但我不认为它会起作用,因为当它将执行NULL = NULL时,它将始终返回false。

如果空字符串与NULL相同,那么您可以将查询更改为ISNULL(line2,“”)为line2等,并在字符串为Nothing时将“”作为参数传递。< / p>

如果你不能这样做,你可以修改你的查询来检查你的参数是否为空,如果是,那么验证line2是否为NULL,而不是当它不是。

希望有所帮助。