gpt4 book ai didi

c# - 使用 linq 查询作为 Microsoft 本地报告数据源 (WinForms)

转载 作者:行者123 更新时间:2023-11-30 12:16:02 25 4
gpt4 key购买 nike

如何使用 linq 查询作为本地报告(Microsoft Report)数据源(WinForms)?我在 MyForm 中有一个 Microsoft Report Viewer 控件,我有一个这样的 linq 查询:

var query = from colV in dal.v_TarafeGharardad join colT in dal.TBL_TarafeGharardad on colV.Id equals colT.PK_Id  select colV;

我想使用 linq 查询作为 Microsoft 报表数据源。我试过了,但我真的知道这是错误的。

frmReportViewer ReportViewerForm = new frmReportViewer();
ReportViewerForm.rptViewer.LocalReport.DataSources.Add(new ReportDataSource("v_TarafeGharardad",query));
ReportViewerForm.rptViewer.LocalReport.ReportPath = Application.StartupPath + "rptTarafeGharardad.rdlc";
ReportViewerForm.Show();

解决方案是什么?(感谢 :-*)

更新:如果我能将linq查询转换成DataTable,问题就解决了。

最佳答案

您所做的看起来非常正确。我正是这样做的(这是 VB):

rptViewer.LocalReport.ReportPath = <filepath>
rptViewer.LocalReport.DataSources.Clear()
rptViewer.LocalReport.DataSources.Add(New ReportDataSource("<data_source_name_in_report>", <linq_query_result>))
rptViewer.SetDisplayMode(DisplayMode.PrintLayout)

您需要检查的一点是您是否正确匹配了报告中的数据源名称。您可以通过在文本编辑器中打开报告并查看数据源元素来检查这一点。

内存中的另一件事,我已经有大约一年没有使用它了,所以我可能是错的,我有一种烦躁的感觉,你必须调用 rptViewer.Refresh()rptViewer.SetDisplayMode() 强制渲染。

查看此网站以获取有关 ReportViewer 控件的大量信息:

http://www.gotreportviewer.com/

关于c# - 使用 linq 查询作为 Microsoft 本地报告数据源 (WinForms),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6068971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com