回答
這裏是我的一個類的實例
// create the relationship between Booking and Booking_MNI
DataRelation relBookingMNI;
relBookingMNI = new DataRelation("BookingToBookingMNI",dsBooking.Tables["Booking"].Columns["Record_Id"],dsBooking.Tables["Booking_MNI"].Columns["booking_record_id"]);
dsBooking.Relations.Add(relBookingMNI);
dsBooking是包含2個表預訂及Booking_MNI 我的主要數據集凡RECORD_ID是主鍵和booking_record_id是外鍵
我改變了下面的代碼來匹配我的第一個例子。但我認爲這是你正在尋找的。在我們的生產代碼中,這將在行的左側產生加號「+」符號,這將允許您鑽入相關表格。我再次拿到了生產代碼,並且看起來像第一個例子,所以我不知道它是否會編譯,但它應該讓你朝着正確的方向前進。
DataTable dtBooking = ds.Tables[0];
DataTable dtBooking_MNI = ds.Tables[1];
dtBooking.PrimaryKey = new DataColumn[] {dtBooking.Columns["Record_Id"]};
dtBooking_MNI.PrimaryKey = new DataColumn[] {dtBooking_MNI.Columns["booking_Record_Id"]};
/* Setup DataRelation between the DataTables */
DataColumn[] dcBookingColsArray = new DataColumn[1] {dtBooking.Columns["Record_Id"]};
DataColumn[] dcBookingMNIColsArray = new DataColumn[1] {dtBooking_MNI.Columns["booking_record_Id"]};
DataRelation relBooking_To_MNI = new DataRelation("Booking_To_MNI",dcBookingColsArray,dcBookingMNIColsArray);
ds.Relations.Add(relBooking_To_MNI_Units);
// grid where you want to display the relationship
grdBooking.DataSource = ds;
我有但之前從未使用過它,並擔心要花上太多時間才能加速。 – flavour404 2009-07-13 21:16:12
值得一看 - 如果你有時間可用 – 2009-07-13 21:26:31
看那的DataRelation類。在DataSet中用於將兩個DataTable關聯在一起。
也許你正在尋找一個解決方案orm像Entity Framework,或Linq to SQL?
適應症,如果我誤解了這個問題。
沒問題,感謝任何有用的迴應:) – flavour404 2009-07-13 22:03:45
如果您使用Visual Studio 2005或更高版本請嘗試以下操作: 右鍵單擊您的項目,然後選擇「添加/的newitem ...」,然後從嚮導中選擇數據集,這將創造你一些XSD和打開數據集設計器。 現在您可以創建多個表,向每個表添加列並在這些表之間繪製關係(外鍵,帶/不帶級聯...)。自動生成的[YourNewDataSet} .Designer.cs文件中的 ,您將找到這些關係的源代碼。 事情是這樣的:
this.relationFK_DataTable2_DataTable1 = new global::System.Data.DataRelation("FK_DataTable2_DataTable1", new global::System.Data.DataColumn[] {
this.tableDataTable2.asdfasColumn}, new global::System.Data.DataColumn[] {
this.tableDataTable1.asdfaColumn}, false);
與往常一樣,你可以去除此代碼頗有些部分,如果你的代碼用手,而不是使用設計。
假設您的DataTables命名爲「orders」和「orderDetails」。您希望通過它們的OrderNumber列創建它們之間的關係。我們假定訂單是父級,orderDetails是孩子。我們希望遍歷訂單,然後打印每個相關的小計。
DataSet orderData = new DataSet("OrderData");
orderData.Tables.Add(orders);
orderData.Tables.Add(orderDetails);
orderData.Relations.Add("Order_OrderDetails", orders.Columns["OrderNumber"], orderDetails.Columns["OrderNumber"]);
現在,當你想用這種關係別的地方在你的代碼:
DataRelation orderRelation = orderData.Relations["Order_OrderDetails"];
foreach (DataRow order in orders.Rows)
{
Console.WriteLine("Subtotals for Order {0}:", order["OrderNumber"]);
foreach (DataRow orderDetail in order.GetChildRows(orderRelation))
{
Console.WriteLine("Order Line {0}: {1}", orderDetail["OrderLineNumber"], string.Format("{0:C}", orderDetail["Price"]));
}
}
試試這個這裏是二表1類& 2.產品
string query = "SELECT * FROM Categories; SELECT * FROM Products";
SqlConnection con = new SqlConnection();
SqlDataAdapter da = new SqlDataAdapter(query,con);
DataSet ds = new DataSet();
da.Fill(ds, "CategoriesAndProducts"); //CategoriesAndProducts dataset
string s = ds.Tables[0].Rows[0]["Name"].ToString();
string s1 = ds.Tables[1].Rows[0]["Name"].ToString();
Console.WriteLine(s); //from categories [0][0] like Electronic
Console.WriteLine(s1); //from Products [0][0] like LG
- 1. 數據集和數據關聯
- 2. D3.js表關聯陣列數據集
- 3. 轉換數據集的數據表C#
- 4. 關聯數組與.NET/Oracle數據交換的UDT表
- 5. 使用C#中的數據表將數據插入到數據集中.net
- 6. 單個數據表中的數據集聯盟表
- 7. 如何將數據錶轉換爲相關數據集
- 8. 動態數據關聯相關表值?
- 9. 跟蹤數據表和數據集
- 10. 返回數據表和數據集
- 11. 大型數據集 - .NET Framework和C#
- 12. 如何使用c中的數據集加載數據表#
- 13. 重置c#.net中的數據表中的數據.net
- 14. 如何使用C#.Net從數據表中刪除合併的數據表?
- 15. C#表單數據集獲取子表單關閉後的數據
- 16. RapidMiner聯盟收集(數據表)
- 17. C#處理數據集和列表框之間的數據
- 18. mysql選擇加入數據集和c#中的數據表#
- 19. 從數據集中的表中排序和訪問數據(C#)
- 20. C#的WinForms:關聯的數據表,以datagriview的數據源 - 問題
- 21. 如何找出數據取決於關聯表的計數
- 22. 如何使用c#.net搜索數據表中的行.net
- 23. 關聯數據庫中的兩個表
- 24. 根據關聯分數排序列表
- 25. 將串行數據關聯到表
- 26. 從關聯的Toxi檢索數據表
- 27. cakePHP關聯數據表添加
- 28. 數據庫交叉表關聯邏輯
- 29. CakePHP模型關聯表w /數據和新表
- 30. 繼承數據表和從數據表
謝謝,這是有道理的...現在我會給它一個嘗試:)。 – flavour404 2009-07-13 22:05:47