ListBox から複数の選択された値をパラメーターとして Select SQL クエリに渡したいと思います。
VB.NET を使用していますが、これを実現するにはどうすればよいですか?...
おそらく最良の開始方法は、リスト ボックスを反復処理して、選択されている項目のみを取得することです。Web フォームを使用していると仮定すると、以下に例を示します。
For Each myItem As ListItem In myListBox.Items
If myItem.Selected Then
'Add the item to the list of parameters
End If
Next
リスト ボックスの項目を繰り返し処理して項目を選択し、何らかのコレクションに追加して渡します。
For i = 0 To ListBox1.Items.Count - 1
If ListBox1.Items(i).Selected Then
' Add to collection
End If
Next
このような状況では、パラメーターの送信方法に関して柔軟性が得られるため、SQL ステートメントをストアド プロシージャでラップすることをお勧めします。
私が使用した別のトリックは、人々が選択に基づいてさまざまな量のパラメーターを持っている場合、次のような常に真の条件に対して選択を追加することです。
ベース SQL = 選択 * MyTable から 1=1
次に、リスト項目 (コレクション) に基づいて、選択的に「追加」することができます。
選択モードを SelectionMode.MultiExtended または SelectionMode.MultiSimple に設定します。SelectedItems プロパティを使用します。
アップデート
私はあなたの選択文が何であるかわからないので、C#で(申し訳ありませんがVB)
string sql = "select [columns] from [table] where [column] in (";
string delimiter = ",";
foreach(var selected in lb1.SelectedItems)
{
sql = String.Concat(sql, selected.text, delimiter);
}
sql = sql.Substring(0, sql.Length-1);
sql = String.Concat(sql, @");");