2

整数の配列があります。selectCommand でその配列を使用して、"IN" 句 ("WHERE Cli.ID IN (1,2,3,4)") を形成したいと考えています。配列を文字列 (以下のコード) に変換しようとしましたが、(合理的には) うまくいきません。

2005 年のこの KB 記事を見つけましたが、提案された回避策で目が充血しました。

私が見逃しているこれを行う簡単でエレガントな方法はありますか? 確かに、やりたいと思うのは十分に一般的なことですか?

        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;
4

0 に答える 0