添加参数SQL IN

时间:2011-03-22 12:40:16

标签: c# sql database parameters

我只是说如果我有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);
      }

使用此代码,我可以将"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 个答案:

答案 0 :(得分:2)

有很多方法可以实现这一点,所有这些方法都在Arrays and Lists in SQL Server文章中进行了描述。对于任何SQL开发人员来说,这都是一个读者。

答案 1 :(得分:0)

我不知道将列表/数组作为单个参数传递以用作IN子句的一部分的任何方法。您最好的选择可能是自己将IN子句构建为字符串。

或者,您可以分步执行此操作 1.创建仅包含ID字段的临时表
2.创建参数化查询以将一个值插入该临时表中 3.遍历您的值,调用sql将值插入临时表中 4.执行主SQL查询,加入临时表而不是使用IN

您只需确保每次都不关闭并重新打开会话,从而确保您的临时表保持不变并保留您插入的值。