我有一个疑问。
比如我的 报表需要两个参数,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、对于数据源的语法,有什么文档可参考?
|
|