找回密码
 立即注册

QQ登录

只需一步,快速开始

beautilegeful

初级会员

6

主题

19

帖子

258

积分

初级会员

积分
258
beautilegeful
初级会员   /  发表于:2019-4-2 11:46  /   查看:3010  /  回复:1
我有一个疑问。
比如我的 报表需要两个参数,Keys,name
在数据库中的语句为
select * from table1 where key in ('key1','key2','key3') and name ='name'

在程序中,
Keys在调用报表之前是一个数组或者集合类型。
List<string> Keys=new List<string>(){"k1","k2","k3"}
在报表添加参数时没有数组类型,那么对我的Keys进行一步处理
string _key=string.Join(",", Keys);
此时_keys处理完后的值为: key1,key2,key3
将__keys作为报表参数Keys传递到报表中

报表数据源绑定时,我可以写成
="select * from table1 where key in  ('" + Join(Split( Parameters!Keys.Value ,","), "', '") + "') "
当语句在=""中时,请问name应该如何拼接上?

另外一种查询语句可以直接贴
select * from table1 where key in (@Keys) and name =@name
但,此时的key是不支持多值的查询的,所以当Keys的总数大于1个时,是任何数据都查询不到的。


那么问题如下:
1、查询语句到底要不要放在=""中,当参数需要调用脚本的时候才放在=""中吗?
2、如果直接贴语句出来,数组类型的参数要如何传递?尤其是在语句需要数组或者字符串等类型混合使用时怎么写?
3、对于数据源的语法,有什么文档可参考?







1 个回复

倒序浏览
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2019-4-2 16:58:23
沙发
你好,你的多值数据是吧,你可以参考这个博客:https://gcdn.grapecity.com.cn/fo ... &extra=page%3D2
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部