在 .rdl 报表中找不到数据源
本文关键字:找不到 数据源 报表 rdl | 更新日期: 2023-09-27 18:33:14
在SQL Server Report Builder中创建了一个报表。都很好!试图将其带入ReportViewer
,但写入错误
对于数据源"DataSet1",尚未设置数据源的实例。
法典:
private void button1_Click(object sender, EventArgs e)
{
reportViewer1.LocalReport.ReportPath = @"C:'MyReport.rdl";
reportViewer1.ProcessingMode = ProcessingMode.Local;
ReportParameter rp = new ReportParameter("code","100");
reportViewer1.LocalReport.SetParameters(rp);
this.reportViewer1.RefreshReport();
}
reportViewer1.LocalReport.DataSources
为空。为什么?在报表生成器中,一切都很好
XML MyReport
<DataSources>
<DataSource Name="NL">
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>Data Source=ACH'SQLEXPRESS;Initial Catalog=NL</ConnectString>
</ConnectionProperties>
<rd:SecurityType>DataBase</rd:SecurityType>
<rd:DataSourceID>629e3b49-aebf-48dc-bb89-f47956feaef8</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="DataSet1">
<Query>
<DataSourceName>NL</DataSourceName>
<QueryParameters>
<QueryParameter Name="@code">
<Value>=Parameters!code.Value</Value>
</QueryParameter>
</QueryParameters>
<CommandText>SELECT
window.code
,window.window
,window.[user]
FROM
window
WHERE
window.code < @code</CommandText>
不,您不应该在客户端上使用 ServerReport
选项。应分两个步骤从服务器下载报表数据:
-
在服务器上生成报告文件并以
rdlc
格式将其保存在本地 -
将报表数据源生成为
DataSet
,并以编程方式设置数据源,如下所示:reportViewer1.LocalReport.DataSources.Clear(); reportViewer1.LocalReport.SetParameters(GetReportParameters(parameter)); foreach (var source in ResultDataSet.Tables) { reportViewer1.LocalReport.DataSources.Add(new ReportDataSource(source.Name, source); }