アプリ版:「スタンプのみでお礼する」機能のリリースについて

宜しくお願い致します。

セッション変数に格納されている配列をSQLデータソースのパラメータとして利用するにはどのようにしたらいいのでしょうか??

普通でしたら

sqldatasource1.selectparameters("**").defaultvalue = session("**")

といった感じで条件としてのパラメータを適用できるかと思いますが、
複数となるとどのようにしたらいいのかが分からないので、質問させていただきました。

また、“session”(配列) に関しても複数ある場合ですと記述方法がいろいろ変わってくると思いますので、何かいいアドバイス等ございましたら、教えていただけたらと思います。

どうぞ宜しくお願い致します。

A 回答 (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
    • good
    • 0
この回答へのお礼

複数回に渡りありがとうございました。
本日少しアレンジした上でコードを書いてみましたところ、希望通りに動作する事を確認できました。
本当に助かりました。

また、何かありましたら宜しくお願い致します。

お礼日時:2009/03/11 18:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す