首先,快速瞭解代碼的功能。我有兩個表格:公司和客戶。公司和客戶之間有一對多的關係(一家公司可以有很多客戶)。爲什麼DataViewManager不能排序?
在一些處理邏輯中,我將這兩個表加載到一個DataSet中 - 每個都是DataTables。我添加了一個DataRelation來設置關係,當我在公司表的記錄中使用GetChildRows時,它就起作用。
但是,我需要對返回的記錄進行排序。在Google搜索一下之後,看起來DataViewManager是要走的路,我已經檢查了幾個基本的例子。但是,我無法對我的行進行排序。我錯過了什麼,或者我沒有使用它應該如何使用?示例代碼:
Dim ldvmManager As New DataViewManager(mdsData)
ldvmManager.DataViewSettings("Companies").Sort = "comName ASC"
ldvmManager.DataViewSettings("Clients").ApplyDefaultSort = False
ldvmManager.DataViewSettings("Clients").Sort = "entLastName ASC, entFirstName ASC"
For Each mdrCurrentCompany in ldvmManager.DataViewSettings("Companies").Table.Rows
Dim ldrClients() as DataRow = mdrCurrentCompany.GetChildRows("CompaniesClients")
Next
不管我做什麼,返回的第一個客戶有一個「B」和第二啓動具有一個與一個「A」開頭的姓氏。從那裏,訂單都混在一起。如果我使用我的整個數據而不是我用來測試的子集,則返回的第一個客戶端的姓氏以'J'開頭。它似乎仍然使用我試圖使用DataViewManager之前正在使用的任何默認排序。
任何想法?
我只是繼續前進,並使用DataTable.Select來獲取過濾器和排序。我仍然很好奇使用DataViewManager的正確方法是什麼 - 或者這隻適用於使用DataView? – Alarion 2008-12-18 20:58:45