for ループがあり、最後の項目が表示されます。すべてのアイテムを取得し、ストアド プロシージャのパラメーターとして使用したいと思います。最後の項目のみを表示する基本的な理由はありますか?
Dim Flipper As String
For x As Integer = 0 To EngineContext.Current.Resolve(Of IWorkContext)().CurrentCustomer.CustomerRoles().Count - 1
Flipper = EngineContext.Current.Resolve(Of IWorkContext)().CurrentCustomer.CustomerRoles(x).Name
Next
Stored Proc:
Select * From myTable Inner Join myOtherTalbe ON myTable.Id = myOtherTable.Id Where RoleId = @RoleId
VB CodeBehind:
Dim strConnection As String = "myDataSource"
Dim con As New SqlConnection(strConnection)
Dim cmd As New SqlCommand("mainForumA", con)
cmd.CommandType = CommandType.StoredProcedure
'params here if needed
cmd.Parameters.Add(New SqlParameter("@RoleId", Flippers))
con.Open()
Dim ds = New DataSet()
Dim da = New SqlDataAdapter(cmd)
da.Fill(ds)
cdcatalog.DataSource = ds
cdcatalog.DataBind()
con.Close()
ロールが 1 つしかない場合は問題ありませんが、ロールが複数ある場合は次のものが必要です。
Select * From myTable Inner Join myOtherTalbe ON myTable.Id = myOtherTable.Id Where RoleId = @RoleId1 Or RoleId = @RoleId2, etc