如何在RDLC报告中使用Linq结果?

时间:2014-02-04 11:38:25

标签: c# linq rdlc

我有以下方法:

private void GetTransactions(string rptType, string acadYrs)
    {
        rptData = new Transactions();
        ds = new DataSet();
        ds = rpt.GetTenantContractListByYear(acadYrs);
        rds = new ReportDataSource("DataSetTenantContract", ds.Tables[0]);
        reportViewer1.LocalReport.DataSources.Add(rds);

        //Load report
        LoadReport(rptType);

        //Assign report
        reportViewer1.LocalReport.ReportPath = reportPath;

        //set report parameters
        this.SetReportParameters(acadYrs);

        //refresh report
        reportViewer1.RefreshReport();
    }

我有一个返回LINQ结果的方法,所以如何填充数据集 LINQ查询和替换

ds = rpt.GetTenantContractListByYear(acadYrs);

ds = rpt.GetDataFromLINQ(acadYrs);

2 个答案:

答案 0 :(得分:1)

ReportDataSource的一个重载是:

public ReportDataSource(string name, IEnumerable dataSourceValue)

假设您的LINQ语句的结果是一个列表(通常是),只需直接指定它:

rds = new ReportDataSource("DataSetTenantContract", rpt.GetDataFromLINQ(acadYrs));

答案 1 :(得分:1)

为您的项目添加新的dataset。为此datatableadapter添加dataset,并将此适配器的查询设置为LINQ的查询。

如果Dasaset1是你的dataset名称,那么:

private void GetTransactions(string rptType, string acadYrs)
    {

        //set report parameters
        this.SetReportParameters(acadYrs);

        //refresh report
        reportViewer1.RefreshReport();
       this.DataTable1TableAdapter.Fill(this.DataSet1.DataTable1);
    }