rdlc报告 - “尚未为数据源提供数据源实例”错误

时间:2013-03-15 15:16:41

标签: asp.net visual-studio-2012 reporting rdlc

在我的 ASP.Net网页项目中,我创建了一个新的网页,然后将脚本管理器控件拖到它上面,然后我创建了一个新的 rdlc报告向导并配置数据集(以显示产品表的3个字段:ProductName,quatityPerUnit,Price),它们开始检索数据。

在接下来的步骤中,我插入了一个新的Reportviewer并将其绑定到之前创建的报告,然后我再次通过打开dataset1.xsd文件并单击预览数据来验证数据是否已被检索。

这是我的网页正文代码:

<body>
    <form id="form1" runat="server">
    <div>

        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
            <LocalReport ReportPath="Reports\MyRdlcReport.rdlc">
                <DataSources>
                    <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="dsProducts" />
                </DataSources>
            </LocalReport>
        </rsweb:ReportViewer>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData" TypeName="WebApplication1.dsProductsTableAdapters.ProductsTableAdapter">

        </asp:ObjectDataSource>        
    </div>
    </form>
</body>

但是当我运行项目时,我得到了下一个错误:没有为数据源'dataSource1'提供数据源实例,我试图在网上找到类似的情况但是没有找到任何帮助,请帮忙吗?

4 个答案:

答案 0 :(得分:5)

您必须意识到defining of datasource

的最后一步

link:http://ruchitech.blogspot.fr/2012/07/how-to-create-rdlc-report-in-c.html

注意:请参阅选择数据源

enter image description here

答案 1 :(得分:4)

最后我找到了原因,它是一个非对应的Tablix数据集名称属性。我不得不将它从dataSet1重命名为dsProducts。

答案 2 :(得分:0)

// ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(Student);

在页面加载中,请确保将以上用于ReportViewer的清除函数作为注释或删除,以避免未提供Data source实例错误。

答案 3 :(得分:-1)

Visual Studio 13提供了一个优雅的解决方案来处理sql server存储过程中的参数:

的ReportViewer 使用报告查看器的Web版本创建Web报告的步骤

  1. 使用网站/添加新项目创建Webform

  2. 在网页上拖动ReportViewer

  3. 选择创建新报告(rdlc)
  4. 选择报告的数据源(务必在保存前重命名)
  5. 使用报告生成器在报告上放置字段。
  6. 保存报告,然后将report1.rdlc的默认值重命名为所需名称
  7. 将报告和网页移至所需目录
  8. 转到网页reportviewer任务并选择报告。
  9. 然后选择数据源(可以在数据源中添加报告的参数)
  10. 选择新数据源或报告将显示错误:

    尚未为数据源'

    提供数据源实例
    1. 将出现一个显示各种数据源的新屏幕。通常选择SQL数据

    2. 选择指定自定义SLQ语句,然后点击下一步

    3. 选择存储过程或选择SLQ语句并使用查询构建器。选择存储过程将允许用户选择存储过程参数的控件。然后,向导将正确配置Web代码,从而无需输入vb代码,如下所示:

    4. Protected Sub ReportViewer1_Load(sender As Object, e As EventArgs) Handles ReportViewer1.Load
          Dim Parm As New ReportParameter("BillingReportParm1", Profile.TherapistNo)
          ReportViewer1.LocalReport.SetParameters(Parm)
          ReportViewer1.LocalReport.Refresh()
      End Sub
      
      1. 完成的HTML代码示例如下所示:
      2. <asp:Content ID="Content2" ContentPlaceHolderID="cpMC" Runat="Server">
        	<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Height="383px" Width="721px">
        		<LocalReport ReportPath="Reports\BillingPendingRpt.rdlc">
        			<DataSources>
        				<rsweb:ReportDataSource DataSourceId="SqlDataPendRpt" Name="BillingPendingRptDataSet" />
        			</DataSources>
        		</LocalReport>
        	</rsweb:ReportViewer>
        	<asp:SqlDataSource ID="SqlDataPendRpt" runat="server" ConnectionString="<%$ ConnectionStrings:MMBDataConnectionString %>" SelectCommand="sp_WorkHour_Rpt" SelectCommandType="StoredProcedure">
        		<SelectParameters>
        			<asp:ProfileParameter Name="Therapist" PropertyName="TherapistNo" Type="String" />
        		</SelectParameters>
        	</asp:SqlDataSource>
        </asp:Content>