2

我在 VS2008 中有一个带有表格和 10 个文本框的报告。我已经成功地将 DB 表中的值绑定到表格。但是如何在同一个报告中将文本框与不同的 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();`
4

1 回答 1

3

我尝试了以下方法,它起作用了。这里查询结果中的每个“数据集”都应该映射到相应的“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'对应于单个报表的不同部分。例如:表格,文本框,矩阵,它们独立保存在单个报表中

于 2013-11-22T06:35:29.033 回答