我有以下方法:
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);
答案 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);
}