- PR -

GridView 複数条件検索方法

投稿者投稿内容
BBSR
大ベテラン
会議室デビュー日: 2006/08/30
投稿数: 121
お住まい・勤務地: 大阪
投稿日時: 2007-10-16 20:31
お世話になります
複数のテキストボックス、ドロップダウンをセットし
値入力で絞り込めていける検索フォームを作りたいのですが
参考:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=31925&forum=7

難しすぎて・・・
一つだけのテキストボックスなら検索可能なのですが複数になると絞り込めません。
SELECT ID, ●●, ●●, ●●, ●●
FROM DB
WHERE (●● LIKE '%' + ? + '%') OR
    (●● LIKE '%' + ? + '%') OR
     (●● LIKE '%' + ? + '%') OR
     (●● LIKE '%' + ? + '%') OR

Me.SqlDataSource1.SelectParameters("ID").DefaultValue = "1";
上記をどの列のどのように記述していいのかさえわかりません;;
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-16 21:52
絞り込むんならORじゃなくてANDじゃないですか?
BBSR
大ベテラン
会議室デビュー日: 2006/08/30
投稿数: 121
お住まい・勤務地: 大阪
投稿日時: 2007-10-17 00:12
ANDはなぜか検索できません;;
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-17 01:35
引用:

BBSRさんの書き込み (2007-10-17 00:12) より:

ANDはなぜか検索できません;;


これでは進展がなくなってしまいますので... どのようなデータをどのような条件で絞込みしたのかを書いた方が良いと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-17 02:22
検索できません;;とはどういう状況ですか?
SQLがエラーになる?エラーにならないけど期待する結果が得られない?

引用:
Me.SqlDataSource1.SelectParameters("ID").DefaultValue = "1";

何のためにこのコードを利用しようと考えていますか?
もっとも、単純な複数検索でしたらデータソースの構成ウィザードだけで出来ると思います。
(空白の場合は条件に含めない、とかだとちょっと編集が必要でしょうが)

まずテキストボックス2個とかで試すのはどうですか?
そして、上手くいかないのは、片方のテキストボックスに入力したときか、両方に入力したときか、
両方とも上手くいかないのか、とかそういう情報くらいはほしいです。
BBSR
大ベテラン
会議室デビュー日: 2006/08/30
投稿数: 121
お住まい・勤務地: 大阪
投稿日時: 2007-10-17 14:50
お返事ありがとうございます
textboxを2個、ボタン、Gridview、
を配置しました。
DBはAccessです。

今の症状は
text1だけの検索ではだめです
text1,2両方のキーの入力があればあいまいで検索可能です
又,text2だけでも検索されません

宜しくお願いします。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-17 14:59
引用:

BBSRさんの書き込み (2007-10-17 14:50) より:

今の症状は
text1だけの検索ではだめです
text1,2両方のキーの入力があればあいまいで検索可能です
又,text2だけでも検索されません


よもやそんなことはないと思いますが、未入力の時は条件に含めないなどの考慮をしていないとか...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-17 15:30
引用:
今の症状は
text1だけの検索ではだめです
text1,2両方のキーの入力があればあいまいで検索可能です
又,text2だけでも検索されません

空白の場合は、
LIKE '%' + ? + '%'

LIKE '%' + '' + '%'
つまり
LIKE '%%'
となって一見、その列については全件ひっかかりそうなものですよね。
ところが、DataSourceには空文字列はnullに変える仕組みがあります。なので
LIKE '%' + null + '%'
となって、何も引っかからなくなります(nullに何か結合してもnullなんでしょね)。
DataSourceのSelectQueryの各パラメータにConvertEmptyStringToNullというプロパティがあると思います。
それをfalseにっ

#何で@〜じゃなくて?なのかとおもったらACCESSはそうなんですね。
#ところで、ACCESSなのにSqlDataSourceって大丈夫だっけ、、

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