次のような C# の文字列があります。
string listOfNumbers = "12,56,90,101"; //of course, this string could be different
および C# コード
sqlCommand.Parameters.Add("@numbers", listOfNumbers);
SqlDataReader dataReader = sqlCommand.ExecuteReader();
しかし、sqlCommand はストアド プロシージャにバインドされており、内部は次のような SQL ステートメントです。
SELECT * FROM TABLE1 WHERE COLUMN1 IN(@numbers)
@numbers
NVARCHAR(30)
データ型です。
しかし、ブレークポイントがSqlDataReader dataReader = sqlCommand.ExecuteReader();
行にある場合、VS2010 は例外をスローしますIncorrect syntax near my_stored_procedure
。
IN 演算子の整数でコンマで区切られた数字を含む文字列を「変換」する方法は?
おそらく、エラーはSELECT * FROM TABLE1 WHERE IN("12,56,90,101")
varchar から integer に変換できなかったことが原因で発生するはずです。