Несколько выбранных значений ListBox в качестве параметров для выбора SQL-запроса - PullRequest
2 голосов
/ 10 марта 2010

Я хочу передать несколько выбранных значений из ListBox в качестве параметров в мой запрос на выбор SQL.

Я использую VB.NET, как мне этого добиться? ...

Ответы [ 3 ]

0 голосов
/ 10 марта 2010

Выберите ваши элементы, перебирая элементы списка, добавляйте их в какую-либо коллекцию и передавайте их.

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

Затем, основываясь на элементах списка (коллекции), вы можете выборочно «ДОБАВИТЬ» Ands

0 голосов
/ 10 марта 2010

Установите режим выбора в SelectionMode.MultiExtended или SelectionMode.MultiSimple. Использовать свойство SelectedItems.

UPDATE

Я не знаю, каково ваше выражение select, поэтому в 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, @");");
0 голосов
/ 10 марта 2010

Вероятно, лучший способ начать - это перебирать список и получать только выбранные элементы. Предполагая, что вы используете веб-формы, вот пример:

For Each myItem As ListItem In myListBox.Items
    If myItem.Selected Then
        'Add the item to the list of parameters
    End If
Next
...