如何使用 c# 使用自定义构建的数据表填充数据集?

how to fill Dataset with custom built DataTable using c#?

我必须制作一个 report.rdlc,我必须将数据集传递给它

我有使用 C# 而不是 SQLDATAADAPTER 制作的数据表,否则它可以填写为

      adpt.fill(ds);

但我只有使用具有列和行的 c# 自定义构建的 DataTable 如何制作报告的 datasource 或制作 dataset

其实很简单...数据集只不过是 "DataTable" 个实例的集合。你应该可以通过..

var DS = new DataSet();
YourCustomPopulatedDataTable.TableName = "SomeTable";
DS.Tables.Add( YourCustomPopulatedDataTable );

* 所做的是创建基线 "ReportManager" class,但是在我得到包含数据的数据集之后,我写了 XML 输出以及 XSD 类似

DS.WriteXmlSchema( "MyXYZReport.xsd");   // the report will get this in a moment
DS.WriteXml( "MyXYZReport.xml");

然后,修改您的项目并添加创建的“.xsd”文件,这样您就不必为报告的架构指手画脚了。因此,第一次通过时,我查询数据,生成 XSD/XML 并在实际报告之前停止。然后,修改项目,添加XSD。

现在,打开你的 rdlc。在左侧,您应该有一个 "Report Data" 的面板。如果没有,请单击报表中的任意位置,但不要单击特定对象。足以让您专注于使用 .RDLC。然后,单击菜单中的 "View",最后一项应显示 "Report Data" 选项。显示后,它将显示数据的来源、参数、图像、数据源、数据集等。

单击“数据集”,右键单击“添加数据集”并选择您添加到项目中的 .XSD。这将显示一个对话框,提示 "Name" 在报告中引用,然后是数据源。数据源应列出名称,例如 "MyXYZReport"。在那下面是 "Available Datasets" 并且在你的数据集中有 table 的名称。请注意我在写 XSD 之前对 "name" 和 table 所做的一行更改。无论该名称是什么 ("SomeTable" ),都应列在可用数据集中。 Select那个。然后,出于我的目的,我将数据集(对话框中的第一个字段)的 "Name" 更改为相同的值 "SomeTable"。这样,我就不会猜测哪个名字是哪个了。他们都将此称为 "SomeTable".

现在,当您开始添加控件时,在报告中,表达式对话框将显示您的 "known" 数据集(table 个实例)和相关字段。