2013-03-15 51 views
2

在我的ASP.Net網頁項目中,我創建了一個新的Web頁面,然後將一個腳本管理器控件拖到它上面,然後I使用嚮導創建了一個新的rdlc報告,並配置了該數據集(顯示3個字段產品表:ProductName,quatityPerUnit,Price),它開始檢索數據。rdlc report''數據源實例未提供數據源'錯誤

在接下來的步驟中,我插入了一個新的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」提供,我試圖在網上找到類似的案例,但成功找不到任何東西,請幫忙嗎?

+0

是您的請求遷移報表? – ashveli 2017-02-16 05:06:00

回答

4

最後我找到了原因,這是一個非對應Tablix數據集名稱屬性。我必須將其從dataSet1重命名爲dsProducts。

5

你必須意識到的最後一步是誰defining of datasource

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

注:參見選擇數據源

enter image description here

+0

已經爲報告定義了數據源,並且報告已分配給報告查看器,我已經看到了您的鏈接,並且我認爲所有的操作都按照其中所示完成了... – 2013-03-15 15:29:48

+0

可視化您的代碼並檢查此行存在:rdlc.DataSource = .... – 2013-03-15 15:30:35

+0

更新了問題。 – 2013-03-15 15:52:07

-1

的Visual Studio 13提供了一個很好的解決方案來處理一個SQL Server存儲過程的參數:

的ReportViewer 步驟要使用的ReportViewer

  1. 使用創建網絡表單的網頁版創建一個Web報告在網頁網站/添加新項

  2. 拖動的ReportViewer

  3. 選擇滿足e創建新報告
  4. 選擇報告的數據源(確保在保存前重命名)
  5. 使用報告生成器在報告上放置字段。
  6. 保存報表然後重命名report1.rdlc的默認名稱所需
  7. 移動報告和網頁所需目錄
  8. 轉到網頁的ReportViewer任務,並選擇報表。
  9. 然後選擇數據源(報表參數可以在數據源添加)

選擇新的數據源或報告會給出錯誤:

的數據源實例尚未對提供數據源'

  1. 將出現一個新屏幕,其中顯示各種數據源。通常情況下選擇SQL數據

  2. 選擇指定自定義SLQ語句然後點擊Next

  3. 選擇存儲過程或選擇SLQ語句來查詢生成器。選擇存儲過程將允許用戶爲存儲過程的參數選擇控件。然後,嚮導將正確配置從而在網絡代碼且不需要任何輸入VB代碼如下面:

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代碼的一個例子是如下所示:

<asp:Content ID="Content2" ContentPlaceHolderID="cpMC" Runat="Server"> 
 
\t <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Height="383px" Width="721px"> 
 
\t \t <LocalReport ReportPath="Reports\BillingPendingRpt.rdlc"> 
 
\t \t \t <DataSources> 
 
\t \t \t \t <rsweb:ReportDataSource DataSourceId="SqlDataPendRpt" Name="BillingPendingRptDataSet" /> 
 
\t \t \t </DataSources> 
 
\t \t </LocalReport> 
 
\t </rsweb:ReportViewer> 
 
\t <asp:SqlDataSource ID="SqlDataPendRpt" runat="server" ConnectionString="<%$ ConnectionStrings:MMBDataConnectionString %>" SelectCommand="sp_WorkHour_Rpt" SelectCommandType="StoredProcedure"> 
 
\t \t <SelectParameters> 
 
\t \t \t <asp:ProfileParameter Name="Therapist" PropertyName="TherapistNo" Type="String" /> 
 
\t \t </SelectParameters> 
 
\t </asp:SqlDataSource> 
 
</asp:Content>