Code Bye

sql 语句绑定参数,参数是字符串

数据库sqlserver。
sql 如下
select * from tool where type in (@type)

绑定参数如下

SqlConnection con = new SqlConnection(SqlHelper.GetConnectionString());
            SqlParameter parameter = new SqlParameter("@type", "“A","B","C"");
            return SqlHelper.ExecuteDataset(con, CommandType.Text, sqlStr, parameter);

执行时,查询不到数据,参数为A/B/C 时可以查询到,写到一块组成字符串就不可以了。

解决方案

30

肯定是不行的,理由很简单  正规sql是  select * from a where b in (“1″,”2″,”3”)
这里1,2,3不是string类型的。
而你拼接的sql,其实会出现这样的select * from a where b in  (“””1″,”2″,”3″””),sql会认为整个”1″,”2″,”3″是一个字符串。而不是单个的‘1’,”2″,”3″
所以是查不到数据的。
方法1,在sql里写一个函数来split你传入的”1,2,3″返回一个datatable。这个网上很多的,你本人查一下就知道了。
方法2,就是不用SqlParameter。直接sql拼接,原因是SqlParameter会根据你的字符串类型加上2个单引号‘’

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明sql 语句绑定参数,参数是字符串