我希望有一种方法可以在 Visual Studio 中动态创建数据集(我使用的是 C#) 我知道您可以通过“单击并拖动”的方式创建一个,但我希望有一种动态创建的方法,因为我需要将数据放入从任何数据库、任何表和任何列收集的报告中。
(我有一个程序可以连接到任何mysql或sql数据库,并显示任何表和任何列。)
现在我需要将其放入报告中。 但首先是数据集。
DataTable table1 = new DataTable("patients");
table1.Columns.Add("name");
table1.Columns.Add("id");
table1.Rows.Add("sam", 1);
table1.Rows.Add("mark", 2);
DataTable table2 = new DataTable("medications");
table2.Columns.Add("id");
table2.Columns.Add("medication");
table2.Rows.Add(1, "atenolol");
table2.Rows.Add(2, "amoxicillin");
// Create a DataSet and put both tables in it.
DataSet set = new DataSet("office");
set.Tables.Add(table1);
set.Tables.Add(table2);
// TODO: This line of code loads data into the 'SwimkidzDataSet.Branches' table.
// You can move, or remove it, as needed.
this.BranchesTableAdapter.Fill(this.manuallyCreatedDataset.Branches);
试过这个但不可能成功
this.BranchesTableAdapter.Fill(set);
this.reportViewer1.RefreshReport();
最佳答案
我有一个我使用的基于包装器的报告流程。因此,我系统中的每个报告都来自相同的底层报告生成器/ View /pdf 输出/自动电子邮件等。在类中,我有一个属性“RptDS”,它代表具有多个表的“数据集”,例如正如您在场景中创建的那样。
因此,我的“rv”变量是加载了 .rdlc 报告定义的“ReportViewer”实例。现在,我只是循环遍历每个表的 RptDS(数据集)并复制到相应的 REPORT 数据源中,并随身携带表名。将 VALUE 设置为等于 DataTable 的值。将其添加到本地报告并继续。
foreach( DataTable dt in RptDS.Tables )
{
var dsi = new ReportDataSource();
dsi.Name = dt.TableName;
dsi.Value = dt;
rv.LocalReport.DataSources.Add(dsi);
}
关于c# - 如何以编程方式在 C# 中创建数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10784232/