gpt4 book ai didi

c# - 在 Winforms 应用程序中筛选 ReportViewer

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:47 25 4
gpt4 key购买 nike

我有一个 View ,它返回我的 SQL Server 2012 数据库中的数据 View 。 View 中的字段之一是“SprintId”。

我有一个 C# WinForms 应用程序,使用 VS2012,它有一个表单,在该表单上有一个 reportViewer。

当我运行它时,我得到了我期望的数据。

现在,我需要将 SprintId 列过滤为特定值。 (因此,添加一个 WHERE SprintId = 37')

我认为,在 rdlc 文件上添加一个参数是正确的方法。

因此,我添加了一个参数,将其命名为“SprintId”,将“Type”设置为 Integer,甚至将默认值设置为 37。

不过,我不确定在哪里将此参数指定为 Where 子句。我有参数,但没有使用它。我在哪里将该参数分配给 View ?

此外,我需要从我的表单中设置参数。所以,我添加了以下代码:

ReportParameterCollection reportParameters = new ReportParameterCollection();
reportParameters.Add(new ReportParameter("SprintId", "37"));
this.reportViewer1.LocalReport.SetParameters(reportParameters);

然后默认代码在之后立即触发:

this.vwSprintDailyBreakdownTableAdapter.Fill(this.Scrum_MasterDataSet.vwSprintDailyBreakdown);
this.reportViewer1.RefreshReport();

但是,一旦我添加参数代码 - 我的报告就完全空白了。我做错了什么?

编辑:

我试过 Romano 的代码,这是我现在使用的代码,但是当我运行它时,我得到一个完全空白的报告。

    var result = new DataTable();
DataRow[] res = this.Scrum_MasterDataSet.vwSprintDailyBreakdown.Select("SprintId = 37");

foreach (DataRow row in res)
{
result.ImportRow(row);
}

this.vwSprintDailyBreakdownTableAdapter.Fill((Scrum_MasterDataSet.vwSprintDailyBreakdownDataTable)result);
this.reportViewer1.RefreshReport();

并捕获以下异常:{“无法将类型为‘System.Data.DataTable’的对象转换为类型‘vwSprintDailyBreakdownDataTable’。”

最佳答案

您可以创建第二个 DataTable 并使用原始表的 Select 命令来“过滤”您的数据:

            vwSprintDailyBreakdownDataTable result = new vwSprintDailyBreakdownDataTable();
DataRow[] res = this.Scrum_MasterDataSet.vwSprintDailyBreakdown.Select("SprintId = 37");

foreach (DataRow row in res)
{
result.ImportRow(row);
}

this.vwSprintDailyBreakdownTableAdapter.Fill(result);
this.reportViewer1.RefreshReport();

关于c# - 在 Winforms 应用程序中筛选 ReportViewer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17562288/

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