簡體   English   中英

從表適配器填充相關數據集

[英]Populating related datasets from a table adapter

我在.NET(2.0版)中使用表適配器和數據集。

我有兩個這樣的表:

Table1
------
...
TypeId

Table2
------
Id
Name

其中Table1.TypeId鏈接到Table2.Id。

我已經使用向導強烈生成了這些類型,所以現在我可以執行以下操作:

Table1Adapter adapter = new Table1Adapter();
Table1DataSet data = adapter.GetData();

foreach(Table1Row row in data) { ... }
// Can now iterate through and display the data

這一切都很好。 但是現在我也想要來自Table2的數據。 我已經注意到,在行中生成了Table2Row字段,該字段看起來很理想,但是將其設置為null。 如何正確填充此數據集?

Typed-Dataset中的每個DataTable都有自己的TableAdapter。 因此,對於數據集中的每個DataTable,您將必須執行相同的步驟。

沒有任何API可讓您自動填充整個類型數據集,或者在支持此功能的類型數據集內未生成此類代碼。 這也是很難做到的,因為TableAdapters沒有可以讓您執行此操作的通用基類。

如果確實需要執行此操作,則必須維護DataTable類型名稱和TableAdapter類型名稱的集合,並遍歷該集合以執行數據集填充。

因此,我建議以“硬編碼”方式填充每個表的數據集。

實際上,有一個名為“ MSDataShape”的Microsoft數據提供程序,可以提供此功能。 當我檢查時,它最后被標記為折舊,但我不知道當前狀態和未來計划是什么,或者用什么替代它。

這是單個“ SQL命令”的示例,我相信它將返回一個具有兩個很好相關的DataTable -s的DataSet

   SHAPE  {select * from customers}
   APPEND ({select * from orders} AS rsOrders
           RELATE customerid TO customerid)

可能要考慮的替代方法是精心設計的FOR XML查詢,但我還沒有考慮過。

編輯:我認為這個答案正是使用XML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM