.net core 3.1根据Query参数动态生成SQL
我现在项目采用.Net Core 3.1运行时,我希望通过链接中不同的Query参数动态生成SQL,从而实现不同用户打开页面显示不同报表内容的效果。我在Controller中加入了Id参数:[HttpGet("/{file}")]
public object Resource([FromRoute] string file, [FromQuery] string id)//我需要传递的query参数Id
{ ........}
我希望根据不同的Id,生成不同的SQL,并且使用这个SQL查询报表内容。
select * from user Where Id=12345所以我在Configure方法中添加了如下代码:app.UseReporting(settings =>
{
settings.UseEmbeddedTemplates(EmbeddedReportsPrefix, Assembly.GetAssembly(GetType()));
settings.UseCompression = true;
settings.LocateDataSource = args =>
{
var res = QueryItems("select * from user where Id=12345");//我不知道怎么传递query参数(id)到这边
return res;
};
});
private static DataTableCollection QueryItems(string sql)
{
var conn = new MySqlConnection(
"Server=127.0.0.1; Port=3306;Stmt=; Database=demodb; Uid=demo; Pwd=demo;");
var daCountry = new MySqlDataAdapter(sql, conn);
var dsCountry = new DataSet();
daCountry.Fill(dsCountry, "User");
var dataSet = dsCountry.Tables["User"?.DataSet;
return dataSet?.Tables;
}这样做虽然手动编写了SQL,但问题是我不知道怎么传递Route中的参数到UseReporting的 settings.LocateDataSource中,而且这个方法只会在程序自动的时候运行一次,并不能实现每一个http请求调用一次,请问下有没有什么解决方案?
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=138284&extra=这是一种方式 可以加我QQ546962925 【新提醒】Web端在线设计器项目实际分享 - ActiveReports专区 - 专题教程 - 葡萄城产品技术社区https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=144262&extra=page%3D1 一种实现方式就是URL上传递参数,然后您自己在代码去处理来实现报表sql根据参数进行过滤
还有一种实现方式,就是利用报表参数,然后把SQL语句跟参数关联动态传递这部分由报表来去完成
可以参考教程:
SQL语句使用参数技巧
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=97162&fromuid=57091
(出处: 葡萄城产品技术社区)
James.Lv 发表于 2022-7-12 21:40
一种实现方式就是URL上传递参数,然后您自己在代码去处理来实现报表sql根据参数进行过滤
还有一种实现方 ...
你好,请问下“URL上传递参数“的方式有例子吗?我现在不知道怎么样才能在用户每次访问报表URL时动态获取Query参数并且合并到SQL语句中 Jycjmf 发表于 2022-7-13 09:04
你好,请问下“URL上传递参数“的方式有例子吗?我现在不知道怎么样才能在用户每次访问报表URL时动态获取 ...
您好,您现在的是问题是不知道如何在startup中获取controller的参数,帮您找了一个链接,您可以参考一下。
https://blog.csdn.net/davy57345/article/details/102300535 wengMQ 发表于 2022-7-12 19:45
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=138284&extra=这是一种方式
非常感谢!解决了 Jycjmf 发表于 2022-7-13 15:40
非常感谢!解决了
解决了就好{:5_117:}有问题欢迎另开新贴 Jycjmf 发表于 2022-7-13 15:40
非常感谢!解决了
有问题欢迎加QQ546962925沟通:handshake
页:
[1]
2