从数组为IN子句创建SQLParameter

时间:2012-10-16 11:03:17

标签: c# asp.net sql-server

我有一个整数数组。我想在selectCommand中使用该数组来形成“IN”子句(“WHERE Cli.ID IN(1,2,3,4)”)。我试图将数组转换为字符串(下面的代码),但(合理地)不起作用。

我找到了this KB article from 2005,但建议的解决方法使我的眼睛流血。

有一种简单而优雅的方式来做到这一点,我错过了吗?当然,这是一件很普通的事情吗?

        string iDlist = "";
        for (int i = 0; i < MyIDs.Length; i++)
        {
            iDlist += Convert.ToString(MyIDs[i]) + (i == 0 ? "" : ",");
        }

        this.sqlDataAdapter1.SelectCommand.CommandText = StandardQuery + @" where Cli.ID in (@iDlist)";

        this.sqlDataAdapter1.SelectCommand.Parameters.Clear();
        this.sqlDataAdapter1.SelectCommand.Parameters.Add(new SqlParameter("@iDlist", SqlDbType.VarChar));
        this.sqlDataAdapter1.SelectCommand.Parameters["@iDlist"].Value = iDlist;

0 个答案:

没有答案