连接到本地.rdl报告的问题。

时间:2017-09-20 20:03:57

标签: c# vb.net reporting-services objectdatasource rdl

现在我一直在这里寻找相同问题的答案,但没有一个真正解决问题或包含足够的信息来澄清一些信息。

现在首先我制作了一个连接到访问数据库的.rdl报告。到目前为止都很好。现在我想把它连接到我的软件而没有服务器(本地)查找代码,最接近我得到的东西是这样的:

Private Sub GenerateLocalReport()

    ReportViewer1.ProcessingMode = ProcessingMode.Local
    ReportViewer1.LocalReport.ReportPath = "D:\work\OrdersInvoice\ReportInvoice\ReportInvoice\OrdersReport.rdl"

    reportViewer.RefreshReport()
    ReportViewer1.RefreshReport()
End Sub

现在问题是上面的代码不起作用。我收到以下消息:尚未为数据源提供数据源实例。

通过搜索我发现的东西,我需要添加一些东西作为数据绑定。现在这里是混乱开始的地方。

    Dim ds = New ReportDataSource("DataSet1",???)
    reportViewer1.LocalReport.DataSources.Add(ds)

这是我能得到的最直接的代码。但我不知道绑定数据源意味着什么。我试图在程序中创建一个数据源,但它不是真正的答案。我有点迷失在这里。

我发现的另一个代码应该是:

ReportViewer1.LocalReport.DataSources.Add(TempDBDataSet.OrderTableDataTable

同样的问题

C#或VB.net中的答案都可以。

2 个答案:

答案 0 :(得分:1)

有两种类型的Reporting Services文件:RDL& RDLC。

两者的功能非常相似。

RDL文件旨在在报表服务器上运行,其中服务器负责根据报表中提供的连接信息创建和填充数据源。

RDLC文件旨在使用报表查看器控件嵌入到客户端应用程序中,无需服务器。您还必须在客户端应用程序中手动连接和填充数据源(正如您在答案中所做的那样)。

答案 1 :(得分:0)

我相信经过一些试验和错误我解决了这个问题。首先,这里是我使用的代码:

Dim dataset As New DataSet("DataSet1")
Dim Conn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\TempDB.mdb;User Id=admin;
    Password=;")
Dim Adb As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("Select * from OrderTable", Conn)
Adb.Fill(dataset)
Dim rds As New ReportDataSource()
rds.Name = "DataSet1"
rds.Value = dataset.Tables(0)  
ReportViewer1.LocalReport.DataSources.Add(rds)

所以我做的是我连接到连接到报表的数据库,然后将数据从数据库填充到我的数据集,用于访问我最终引用ReportDataSource的表。

之后它运作良好。