积极答复者
通过SqlDataAdapter构造函数传参数的问题

问题
-
web中有很多查询条件,我想通过参数传到存储过程中。基本的sql语句为 selsect ..... from .... into.....where.....and.....。
如果传入的参数为:EXEC pagesql '*',' FROM db_WomenClothes ',5,1 ,'' 不会报错.
如果传入的参数为:EXEC pagesql '*',' FROM db_WomenClothes ',5,1 ,'WHERE Season ='春季' ' 就会报错,原因是 'WHERE Season ='春季' ' 引号中套引号的语法错误。
在存储过程中用一个数组接收传入的参数,接收到的数据应该是WHERE Season ='春季',理论上没有错误。
ALTER PROCEDURE [dbo].[pagesql]
@sqlSelect varchar(800) --SELECT 后面 FROM 前面 的 字段 不用包含SELECT
,@sqlFrom varchar(800) --FROM 后面 的 字段 包含FROM
,@countPerPage int -- 每页数据行数
,@toPage int --要转到的页码
,@Condition varchar(800) --条件
AS
实在不知道怎么改,问问大家
答案
全部回复
-
Tried this?
EXEC pagesql '*',' FROM db_WomenClothes ',5,1 ,'WHERE Season =''春季'' '
By the way, you can double check parameter with print like:
print @sqlfrom
'WHERE Season ='春季' ' 出错的根本原因是把语句分成了三部分'WHERE Season =' , 春季, ' '。 sql传参数的形式必须为 'xxxxxxxxx',如果中间要套引号出错是必然的。有些sql语句只能传递带引号的参数。这也是sql server的一个bug。