------解决方案-------------------- 是 Sql server 吗,它不直接支持数组参数,这样确实麻烦,可以看看这个 SQL SERVER “数组参数”
------解决方案-------------------- 我不会,楼主您别骂我
------解决方案-------------------- 无解?! 明白LZ的意思,所以特地用SQL跟踪了,发现SQL服务器在执行带参数的T-SQL语句时用的是执行储存过程sp_executesql,而且针对varchar的参数,在参数头尾判断单引号,参数中遇到单引号(')时使用了双单引号(不是双引号)替换来防止语句错误。 楼主用的工具应该是封装过执行语句的吧。MSSQL中的参数应该是@开头,不是用?代替吧? 顺便Mark下 看有没有高手能绕过SQL的引号替换法则来实现LZ的功能!!!!
------解决方案-------------------- 总的来说骂人是不对的,我们程序员都是高素质人群嘛。哈哈。因该像色情网站里的会员那么有素质才对嘛。
------解决方案--------------------
------解决方案--------------------
SQL code
--1
SELECT * FROM dbo.Record WHERE phone IN ('86204527','94')
--2
DECLARE @sql VARCHAR(4000)
SET @sql = 'SELECT * FROM dbo.Record WHERE phone IN (''86204527'',''94'')'
EXEC (@sql)
------解决方案--------------------
我的通行做法: 一、直接串SQL串,不使用?来处理: String a="600600,600112" select * from Show2003 where S1 in ("+a+");” 二、“select * from Show2003 where S1 in ('600600','600112');”将in做为一个整串处理 String s="in ('600600','600112')"; select * from Show2003 where S1 ?; 三、在存储过程中处理 http://blog.csdn.net/e_wsq/article/details/7527154