宜しくお願い致します。
セッション変数に格納されている配列をSQLデータソースのパラメータとして利用するにはどのようにしたらいいのでしょうか??
普通でしたら
sqldatasource1.selectparameters("**").defaultvalue = session("**")
といった感じで条件としてのパラメータを適用できるかと思いますが、
複数となるとどのようにしたらいいのかが分からないので、質問させていただきました。
また、“session”(配列) に関しても複数ある場合ですと記述方法がいろいろ変わってくると思いますので、何かいいアドバイス等ございましたら、教えていただけたらと思います。
どうぞ宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
以下にサンプルをあげますが、回答というよりも、あくまでも一例としてやり方だけ理解していただきたいという趣旨です。
これを見ると以下のことがわかるはずです。
・Sessionに入れた配列は結局一旦配列の変数に取り出して使う
・同じページ内の処理であれば、結局Sessionを使う必要はない
・SqlDataSourceへの値のセット方法は、パラメータとして渡す方法だけではない
また、ここまで来ると質問内容はデータベースカテゴリよりも、明らかにASP.NETです。ASP.NETカテゴリの方がはるかに早く適切な回答が付くでしょう、ということもコメントしておきます。
Dim myArray() As String = Split("1,0,1,1,0", ",")
Session("aaa") = myArray
Dim myNewArray() As String
myNewArray = Session("aaa")
Dim strSQL As String = "SELECT * FROM TABLE1"
Dim strWhere As String = ""
For i As Integer = 0 To UBound(myNewArray)
If myNewArray(i) = "1" Then
Select Case i
Case 0 : strWhere = strWhere & " (F1=1 AND F2=0)"
Case 1 : strWhere = strWhere & " OR (F1=2)"
Case 2 : strWhere = strWhere & " OR (F2=1 AND F3=1)"
Case 3 : strWhere = strWhere & " OR (F1=1 AND F2=1)"
Case 4 : strWhere = strWhere & " OR (F3=2)"
End Select
End If
Next
If Left(strWhere, 3) = " OR" Then strWhere = Right(strWhere, Len(strWhere) - 3)
If strWhere <> "" Then strSQL = strSQL & " WHERE " & strWhere
SqlDataSource1.SelectCommand = strSQL
複数回に渡りありがとうございました。
本日少しアレンジした上でコードを書いてみましたところ、希望通りに動作する事を確認できました。
本当に助かりました。
また、何かありましたら宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 モデルのパラメータの定義がいまいちわかりません。 3 2022/10/11 15:16
- 統計学 ARMAモデルが適用できる状態について 1 2022/12/30 05:58
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- PHP PHP MySql ページング 2 2022/09/20 06:38
- SQL Server SQL 期間内の実施数を合計したい 2 2023/03/03 22:28
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部結合で取得した項目にNVL関数
-
スペースを検索したい
-
INSERT文などの列名などの半角...
-
EXCELのVBA NULL、スペ...
-
Trimの使い方
-
DTSパッケージについて
-
ORACLEの「DECODE」と同じ意味...
-
差し込み後、元データを変更し...
-
SELECT 文 GROUP での1件目を...
-
エクセルで最後の文字だけ置き...
-
1、Rstudioで回帰直線を求める...
-
INSERT文でフィールドの1つだ...
-
処理件数を非表示にしたい
-
for whichの使い方
-
重複していないレコードの抽出...
-
過剰なオブジェクト指向脳から...
-
SQLサーバから、項目の属性(型...
-
フィルターかけた後、重複を除...
-
速度が低下し無効になったアド...
-
SQL Date型の列から年月だけを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スペースを検索したい
-
顧客データベースを作る場合、...
-
あいまい検索で英文字の全角半...
-
末尾の全角スペースの削除
-
INSERT文などの列名などの半角...
-
select文のwhere句に配列を入れ...
-
ORACLEの「DECODE」と同じ意味...
-
SQLServer2005のストアドプロシ...
-
ストアドの戻り値で配列を返す方法
-
外部結合で取得した項目にNVL関数
-
WHERE条件の最終桁のスペースに...
-
MYSQL 右埋め 半角スペース
-
DTSパッケージについて
-
セッション変数に格納されてい...
-
Trimの使い方
-
アンケートメールをACCESSに取...
-
EXCELのVBA NULL、スペ...
-
ストアドプロシジャで配列
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
おすすめ情報