如何在相同数据集中的表之间建立关系?

我有一个数据集,其中有 40个表。现在我想在这些表格之间建立关系 ,并在网格中显示 重要数据。我该怎么做呢?如何在相同数据集中的表之间建立关系?

回答:

你尝试类似:

ds.Relations.Add("Products_Category", 

ds.Tables("Categories").Columns("CategoryID"),

ds.Tables("Products").Columns("CategoryID"));

回答:

如果您正在创建一个类型化的DataSet,这是最简单的创建在Visual Studio中的数据集设计的关系。只需右键单击设计器中的表格,选择Add-> Relation,然后指定关系。

如果你需要在代码中指定的关系,你可以做这样的:

dataSet.Relations.Add(dataSet.Tables["Customers"].Columns["customerId"], 

dataSet.Tables["Orders"].Columns["customerId"]);

阅读所有关于它在MSDN here。

回答:

这是一个DataTablesDataSet有大量。

我会考虑的第一件事情是通过用加入数据库表的查询填充DataTables来减少DataTables的数量(并且不需要Relations)。例如,可以将一个DataTable用于产品类别,另一个用于产品详细信息,也可以将两个数据库表的数据合并为一个DataTable。同样,对于客户,客户地址和客户电话,通过使用在所有三个数据库表上执行JOIN的一个查询来检索一个DataTable中的所有数据。

一旦你在DataSet最小的DataTables数量,你可以DataTables之间添加Relations如果他们匹配的列(即使列有不同的名称)。例如,可能会有订单DataTable,其CustomerID列与Customers DataTable中的ID列匹配。

以下是在此情况下将Relation添加到DataSet的代码。假设我们有一个DataSet dst包含两个DataTables客户和订单。

DataColumn customerColumn, orderColumn; 

customerColumn = dst.Tables["Customers"].Columns["ID"];

orderColumn = dst.Tables["Orders"].Columns["CustomerID"];

DataRelation dr = new DataRelation("CustomerOrders", customerColumn, orderColumn);

dst.Relations.Add(dr);

回答:

ds.Relations.Add("Products_Category", 

ds.Tables("Categories").Columns("CategoryID"),

ds.Tables("Products").Columns("CategoryID"));

以上是 如何在相同数据集中的表之间建立关系? 的全部内容, 来源链接: utcz.com/qa/262847.html

回到顶部