***存储过程传入参数时遇到的问题:如何把用逗号隔开的字符串参数传入存储过程中varchar类型的SQL语句中..急呀
写了一个存储过程部分语句如下:
CREATE proc Get_Account_Collect
(
@SIMCard varchar(100)
)
as
begin
declare @SQL1 nvarchar(2000)
set @SQL1='select c.simcard ,CName,CustCatlog from Customer c inner join STKCard o on o.CustID=c.ID'
if len(@SIMCard)> 0
BEGIN
set @SQL1 = @SQL1 + ' and c.CustomerNo in ' + @simCard
END
...
因为要向字符串类型的SQL中传参数,所以我传入的参数是 (''001'',''002'') 写在程序中的代码是:
SqlParameter paraSIMCard = new SqlParameter("@SIMCard", SqlDbType.VarChar, 100);
paraSIMCard.Value ="(''001'',''002'')";
cmd.Parameters.Add(paraSIMCard);
他总是报错.
但是我在存储过程中直接把给参数@simCard赋值 ,即:set @simCard='(''001'',''002'')' 或者直接在查询分析器中运行
exec Get_Account_Collect '(''001'',''002'')'
这样都可以运行.就是放在程序中执行的时候不行,好奇怪呀...这到底是为什么呀.哪位大GG帮帮小弟呀..不甚感激呀!
------解决方案--------------------
给过程传
('001','002')