Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net WebForms ReportViewer数据源错误_Asp.net_Reporting Services_Reportviewer - Fatal编程技术网

Asp.net WebForms ReportViewer数据源错误

Asp.net WebForms ReportViewer数据源错误,asp.net,reporting-services,reportviewer,Asp.net,Reporting Services,Reportviewer,我在窗体上使用ReportViewer控件: <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <rsweb:ReportViewer ID="ReportViewer1" runat="server"> </rsweb:ReportViewer

我在窗体上使用ReportViewer控件:

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <rsweb:ReportViewer ID="ReportViewer1" runat="server">
    </rsweb:ReportViewer>
</form>
当报告呈现时,我遇到了下一个错误:

A data source instance has not been supplied for the data source 'DataSet1'.

连接工作正常(我对其进行了测试),当我尝试在MS SQL Server report Builder中运行报表时,它也正常工作(报表已生成)。

在rdlc报表上有一个名为“DataSet1”的数据集,您在设计报表时添加了该数据集。您需要传递此数据集用于呈现报表的数据

这是通过localreport数据源集合完成的。请注意,它是复数,意思是您可以在报告中有多个数据集

ReportViewer1.LocalReport.DataSources.Clear();

ReportDataSource rds = new ReportDataSource();
rds.Name = "DataSet1";  //this is the name of the DataSet on your report rdlc
rds.Value = datatable; //this contains the data and columns referenced in the dataset

ReportViewer1.LocalReport.DataSources.Add(rds);
如果查看下面的标记,您将看到reportviewer所期望的内容

<rsweb:ReportViewer ID="ReportViewer1" runat="server">
<LocalReport ReportPath="Report1.rdlc">
    <DataSources>
        <rsweb:ReportDataSource Name="DataSet1" />
    </DataSources>
</LocalReport>
</rsweb:ReportViewer>

我已经完成了答案的第二部分(.aspx内容)-现在我看到了导航,但下面显示了错误:“在报告处理过程中发生了错误。”。DataSet1“我应该也做第一部分(codebehind)吗?我将更新我的答案以支持第二部分-仍然需要codebehind”报告处理过程中出现错误。“DataSet1”可能是因为.rdlc文件的路径不正确。文件的路径正确(如果不正确-报表查看器如何知道数据集名称?)。什么是myData?我在我的报表中创建了sql查询,我应该传递给它什么?我无法复制这个问题。可能还有其他问题导致了这一点,但当我设置此功能时,它按预期工作。
<rsweb:ReportViewer ID="ReportViewer1" runat="server">
<LocalReport ReportPath="Report1.rdlc">
    <DataSources>
        <rsweb:ReportDataSource Name="DataSet1" />
    </DataSources>
</LocalReport>
</rsweb:ReportViewer>
ReportViewer1.LocalReport.DataSources["DataSet1"].Value = myData;