如何以编程方式在 C# 中创建数据集

本文关键字:创建 数据集 方式 编程 | 更新日期: 2023-09-27 18:35:28

我希望有一种方法可以在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();

如何以编程方式在 C# 中创建数据集

我有一个基于包装器的报告流程。 因此,我的系统中的每个报告都来自相同的底层报告生成器/视图/pdf输出/自动电子邮件等。 在类中,我有一个属性"RptDS",它代表具有多个表的"数据集",例如您在场景中创建的表。

因此,我的"rv"变量是加载了 .rdlc 报表定义的"报表查看器"的实例。 现在,我只需遍历每个表的 RptDS(数据集),然后复制到相应的 REPORT 数据源中,并随身携带表名。 将 VALUE 设置为等于数据表的任何值。 将其添加到本地报表中,然后继续。

foreach( DataTable dt in RptDS.Tables )
{
    var dsi = new ReportDataSource();
    dsi.Name = dt.TableName;
    dsi.Value = dt;
    rv.LocalReport.DataSources.Add(dsi);
}