我有三个表:A,B和C.A有设备信息,其中column1是主键。 C列出了部件及其详细信息,相应的部件ID作为column1中的主键。 B将C.column1
中选定的PK ID与来自A.column1
的相应PK保存到与设备链接的部分。
我正在制作一份报告,其中列出了A中的设备,其中所有部件的子报告都链接到来自C的每台设备。
我的数据集1有两个从MySQL中提取的tableAdaptors - 一个列出设备,另一个列出部分。如果我预览两个tableAdaptors,我会得到我想要的信息。 (我使用一个数据集作为信息,因为它链接到一个报告。)我在主报告上的数据是通过列出设备,但我的子报告是空的。如何获取子报告以显示数据?
我已经设置了一个链接,其中来自A的PK链接到C的PK。设置链接的报告的配置部分(子报告链接)确实获取了3个表之间的关系。当我运行报告时,子报告不会提取数据。
添加了信息(对于迟到的回复感到抱歉,有randsomeware要处理,哈哈):
这是我的DataSet目前,我确实将两个表格分别与TableAdaptor分开,然后将其合并为一个以查看它是否会产生影响:
在这里,我们的主要报告是什么样的,您可以看到添加子报告的位置(用红色标出名称):
这是我在按钮的“点击”功能上加载的当前代码:
//Create SQL connection
SqlConnection SQLConnect = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString);
SqlCommand SQLEquipLinkedReport = SQLConnect.CreateCommand();
SQLEquipLinkedReport.CommandText = "EXECUTE EquipmentListDataSet";
try
{
//Pull info from DB
SQLConnect.Open();
SqlDataAdapter myEquipLinkedDA = new SqlDataAdapter(SQLEquipLinkedReport);
EquipmentListDataSet EquipLinkedDS = new EquipmentListDataSet();
//Dump info in DataSet
myEquipLinkedDA.Fill(EquipLinkedDS, "EquipmentListDataSet");
SQLConnect.Close();
//Call report and fill it with the DB info
EquipmentLinkedDetails myEquipRPT = new EquipmentLinkedDetails();
myEquipRPT.SetDataSource(EquipLinkedDS);
ReportViewerLinkedParts.ReportSource = myEquipRPT;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}