如何在相同数据集中的表之间建立关系?
我有一个数据集,其中有 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。
回答:
这是一个DataTables
在DataSet
有大量。
我会考虑的第一件事情是通过用加入数据库表的查询填充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