TableAdapter で条件が可変で複数ある条件を使用したかったんだけど、
SELECT * WHERE 項目 IN (@条件1,@条件2,@条件3・・・)
抽出条件が可変(WHERE IN (・・・・))での使用は出来ない!
(ただし、自動生成されたソースをいじくれば可能)
固定でパラメータの数が決まっている必要がある。
⇒対応
' 呼び出し元
Dim type As String = "ID_01,ID_02,ID_03"
' テーブルアダプター
Private adTest As New adTest
Public Sub GetData(ByVal type As String)
Dim aryType As String() = type.split(",")
Dim adapter As New SqlClient.SqlDataAdapter
Dim dtTest As DataTable
With adTest.GetData
If aryItem.Length = 1 Then
.Parameters("@Type").value = type
Else
' パラメータの削除
.Parameters.RemoveAt("@Type")
' SQLの置き換え
.CommandText = .CommandText.Replace("@Type","'" & String.Join("','", aryType & "'")
End If
End With
adapter.SelectCommand = adTest.GetData
adapter.Fill(DataSet)
End Sub
SELECT * WHERE 項目 IN (@条件1,@条件2,@条件3・・・)
抽出条件が可変(WHERE IN (・・・・))での使用は出来ない!
(ただし、自動生成されたソースをいじくれば可能)
固定でパラメータの数が決まっている必要がある。
⇒対応
' 呼び出し元
Dim type As String = "ID_01,ID_02,ID_03"
' テーブルアダプター
Private adTest As New adTest
Public Sub GetData(ByVal type As String)
Dim aryType As String() = type.split(",")
Dim adapter As New SqlClient.SqlDataAdapter
Dim dtTest As DataTable
With adTest.GetData
If aryItem.Length = 1 Then
.Parameters("@Type").value = type
Else
' パラメータの削除
.Parameters.RemoveAt("@Type")
' SQLの置き換え
.CommandText = .CommandText.Replace("@Type","'" & String.Join("','", aryType & "'")
End If
End With
adapter.SelectCommand = adTest.GetData
adapter.Fill(DataSet)
End Sub