- PR -

ASP.NET パラメータクエリですべてのデータを抽出

1
投稿者投稿内容
ポテチ
ベテラン
会議室デビュー日: 2003/03/28
投稿数: 69
投稿日時: 2003-05-20 19:20
SQLDataadapterオブジェクトのCommandTextに
"SELECT ユーザID, 氏名 FROM T_個人マスタ WHERE (ユーザID = @Param)"

SqlDataAdapter1.SelectCommand.Parameters("@Param").Value = "001"
SqlDataAdapter1.Fill(DataSet1, "T_個人マスタ")

とすると
001 だいまる
が取得できますが、全レコードを抽出したいので
SqlDataAdapter1.SelectCommand.Parameters("@Param").Value = "%"
とすると一件も取得できませんでした。
きっと WHERE ユーザID LIKE % でなく
WHERE = %
と認識しているため取得できないのかと思いますが、使い方が間違っているのでしょうか?
勉強もかねてパラメータクエリを使った方法でやりたいと思いますのでWHERE句を直接ハードコーディングするのは避けたいと思ってます。
よろしくお願いします。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-05-21 08:14
こんにちは。
引用:

だいまるさんの書き込み (2003-05-20 19:20) より:

全レコードを抽出したいので
SqlDataAdapter1.SelectCommand.Parameters("@Param").Value = "%"
とすると一件も取得できませんでした。


 IDの型は何でしょうか?数字系の型だと、LIKE演算子は使えません。("001"とされているので、文字系の型だと思いますが)

 実行速度を気にするなら、SQL文を組み立てるときにWHERE句を付けるかどうか、判断します。気にしないなら、「WHERE ユーザID LIKE @Param」にしておきます。ワイルドカードが指定されていなければ、完全に一致する物が検索されます。
ポテチ
ベテラン
会議室デビュー日: 2003/03/28
投稿数: 69
投稿日時: 2003-05-21 09:27
コメントありがとうございます。

ID型はnverchar型です。
LIKE演算子を使ってみる事にします。
でもどうしてなんでしょうね?
ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)