0

私はasp.netで作業しているVisual Studio2010を使用しています。クエリを例のように機能させたいのですが、私のものは機能しません!

データベースに次の行があります。

Fullname=joe.address=earth,work=5656,home=23,mobile=55
Fullname=Michel.address=earth,work=5,home=2343,mobile=5435

ユーザーは次のように入力します。

Fullname=joe ,address=earth

プログラムは最初の行だけを返す必要があります。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')
4

1 に答える 1

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')

ただし、コメントで指摘されているように、値が存在しない場合に使用する必要があります-それがSQLに存在するNULL主な理由です-また、常に文字列として扱うのではなく、適切なデータ型を使用できることも意味します(必要な場合) . (ただし、この場合、すべてが文字列のように見えます)。

于 2012-12-31T13:50:08.913 に答える