我在 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 转换为整数。