将代码后面的多个数据集添加到.rdlc报告中

时间:2013-11-04 11:50:27

标签: c# visual-studio-2008 dataset datasource rdlc

我在VS2008中有一个包含一个表和10个文本框的报告。我从DB-table sucesfully绑定到表的值。但是如何在同一个报表中将文本框与不同的DB表绑定?如何一次在同一个代码隐藏中绑定多个数据集?如果我使用多个查询来获取单个报告的数据呢?我做的示例代码在这里 - 它将数据绑定到.rdlc中的表。

//表映射命名DataTable。

            adapter.TableMappings.Add("View", mappingTableDataSet);

            // Open the connection.
            connection.Open();
            Console.WriteLine("\nThe SqlConnection is open.");

            SqlCommand command = new SqlCommand(queryString, connection);
            command.CommandType = CommandType.Text;

            // Set the SqlDataAdapter's SelectCommand.
            adapter.SelectCommand = command;
            command.ExecuteNonQuery();

            // Fill the DataSet.
            DataSet dataset = new DataSet(mappingTableDataSet);
            adapter.Fill(dataset);

            //Set up reportviewver and specify path
            ReportViewer viewer = new ReportViewer();
            viewer.ProcessingMode = ProcessingMode.Local;
            viewer.LocalReport.ReportPath = reportPath;

            //specify the dataset syntax = (datasetofreport.rdlc,querydataset); 
            viewer.LocalReport.DataSources.Add(new ReportDataSource(reportDataSource, dataset.Tables[0]));
            //viewer.LocalReport.DataSources.Add(new ReportDataSource("podDataSet_Route_Summary", dataset.Tables[0]));
            connection.Close();`

1 个答案:

答案 0 :(得分:2)

我尝试了以下内容并且它有效。从查询结果中的每个'数据集'都应该映射到相应的'reportDataSource',否则它将通过错误说'reportDataSource'不可用。我们需要提供尽可能多的数据集,因为我们使用reportdatasources分别如下

                viewer.LocalReport.DataSources.Add(new ReportDataSource(reportDataSource, dataset.Tables[0]));
                viewer.LocalReport.DataSources.Add(new ReportDataSource("reportDataSource1", dataset.Tables[1]));
                viewer.LocalReport.DataSources.Add(new ReportDataSource("reportDataSource2", dataset.Tables[2]));
                viewer.LocalReport.DataSources.Add(new ReportDataSource("reportDataSource3", dataset.Tables[3]));
                viewer.LocalReport.DataSources.Add(new ReportDataSource("reportDataSource4", dataset.Tables[4]));

这里每个'reportDataSource'对应于单个report.Eg:Table,Textbox,Matrix的不同部分,它们独立保存在单个报告中