- - PR -
NULL検索
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-09-06 23:29
あ、、そうですよね、、。
ところで再度聞きますがDBはAccessですか?私の環境では OleDbDataAdapterでパラメータ名に@makerとか使えましたよ。 データベースエクスプローラ上では無理でしたけど。 1回ずつしか使えないとなると、 WHERE ( IIF(IsNull(商品名) , '' ,商品名 ) LIKE '%' + ? + '%') AND ( IIF(IsNull(メーカー), '' ,メーカー) LIKE '%' + ? + '%') こんなかんじでしょうか。やってることはろでおぼーいさんのと同じですが。 ただ、パラメータを両方空にした場合は全て出力されてしまいます。 あと、パラメータがnullの場合には対応できていません。 ([空文字]じゃなくてnullのケースがあるんですか?) | ||||||||
|
投稿日時: 2008-09-07 06:37
そうです。
ACCESSです。
で、うまく行きました!! ありごとうございます。 NULLというか空文字ですね。 ただ、is Nullが「真」になるんでNULLなのかなぁと思っていたんですが・・・。 | ||||||||
|
投稿日時: 2008-09-07 12:31
'' IS NULL は真にはならないと思います。
ただ、AccessDataSource(またはその他のデータソース)を使用しているなら CancelSelectOnNullParameterプロパティ(デフォルトがtrue)や、各パラメータの ConvertEmptyStringToNullプロパティ(デフォルトがtrue)があるので注意が必要です。 | ||||||||
|
投稿日時: 2008-09-09 21:42
> 「?」って、1回しか使えないですよねぇ。
なんで?Parameters に、「商品名」を2回追加すればいい。 '?' を使う場合は、Parameters に挿入した順に置き換えられるので、'?' が出てくる順番に、そこに置き換えたいオブジェクトを挿入してやれば、何度でも使えます。 「挿入した順」なので、順番を間違えるととんでもないことになります。 | ||||||||
|
投稿日時: 2008-09-09 22:31
という選択肢もわかりやすくて良いと思うのですが。
----- HM さんが > ちなみにASPで書いたときは と言われている事とほとんど同じでしたね。 すみません。 ----- 編集したらコードの中が改行×2になりました! そういうもんですか? [ メッセージ編集済み 編集者: King 編集日時 2008-09-10 09:12 ] |