where子句不起作用

Nar*_*ges 0 sql visual-studio-2010 where-clause

我正在使用visual studio2010,与asp.net合作.我希望查询像示例一样工作,但我的工作不起作用!

我在数据库中有这些行:

Fullname=joe.address=earth,work=5656,home=23,mobile=55
Fullname=Michel.address=earth,work=5,home=2343,mobile=5435
Run Code Online (Sandbox Code Playgroud)

用户只需输入:

Fullname=joe ,address=earth
Run Code Online (Sandbox Code Playgroud)

该程序应该返回第一行.0是textBoxes的默认值.

SELECT fullName, address, work, home, mobile, registrationNo
  FROM contacts
 WHERE (fullName = @fullName OR fullName = '0')
   AND (address = @address OR address = '0')
   AND (work = @work OR work = '0')
   AND (home = @home OR home = '0')
   AND (mobile = @mobile OR mobile = '0')
Run Code Online (Sandbox Code Playgroud)

Dam*_*ver 6

当我认为你要检查参数时,你正在检查是否相等'0':

SELECT fullName, address, work, home, mobile, registrationNo
FROM   contacts
WHERE  (fullName = @fullName OR @fullName = '0')
AND    (address = @address   OR @address = '0')
AND    (work = @work         OR @work = '0')
AND    (home = @home         OR @home = '0')
AND    (mobile = @mobile     OR @mobile = '0')
Run Code Online (Sandbox Code Playgroud)

正如在评论中指出的那样,你真的应该使用NULL缺少值 - 这是它存在于SQL中的主要原因- 并且还意味着你可以使用适当的数据类型(必要时),而不是总是将事物视为字符串.(但是,在这种情况下,一切看起来都是一个字符串).