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

Issues connecting to local .rdl report.

现在我一直在寻找相同问题的答案,但 none 确实解决了问题或包含足够的信息来澄清一些信息。

现在,我首先创建了一个连接到访问数据库的 .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 回答都可以。

我相信我在反复试验后解决了这个问题。首先是我使用的代码:

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)

所以我所做的是连接到连接到报告的数据库,然后将数据库中的数据填充到我的数据集,用它来访问我最终引用的 table对于 ReportDataSource。

之后效果很好。

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

两者的功能非常相似。

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

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