Добавление параметра SQL IN - PullRequest
0 голосов
/ 22 марта 2011

Я просто говорю, если у меня есть SQL, как это;

SELECT B.HESAP_NO
FROM S_TEKLIF B
WHERE B.HESAP NO = 234

Я могу добавить некоторые параметры таким SQL программно, как этот C# код;

      if (txtBoxText1 != "")
      {
          strQuery = strQuery + " AND A.ISL_TAR >= @S_TARIH_B";

          dt_stb = DateTime.Parse(txtBoxText1);
          myCommand.Parameters.AddWithValue("@S_TARIH_B", dt_stb);
      }

С помощью этого кода я могу добавить AND "A.ISL_TAR >= @S_TARIH_B" к моему SQL.

НО , в SQL IN операторах я не знаю, как мне добавить некоторые параметры.

Например;

SELECT A.HESAP_NO
FROM S_TEKLIF A
WHERE A.HESAP_NO IN (SELECT A.HESAP FROM S_TEKLIF WHERE A.MUS_K_ISIM = 
for (int counter = 0; counter < list.Items.Count; counter++)
  {
 if (list.Items[counter].Selected)
{
 values.Add(list.Items[counter].Value);
 }

  })

Как добавить параметры в SQL IN?

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

Существует несколько способов добиться этого, и все они описаны в статье Массивы и списки в SQL Server .Это читалка для любого разработчика SQL.

0 голосов
/ 22 марта 2011

Мне неизвестен способ передачи списка / массива в качестве одного параметра для использования в качестве части предложения IN. Наилучшим вариантом может быть создание предложения IN в виде строки.

Кроме того, вы можете сделать это поэтапно.
1. Создайте временную таблицу только с полем ID
2. Создайте параметризованный запрос, чтобы вставить одно значение в эту временную таблицу
3. Просмотрите ваши значения, вызывая sql для вставки значений во временную таблицу
4. Исключите ваш основной SQL-запрос, присоединившись к временной таблице вместо использования IN

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...