2008-12-18 3 views
0

Tout d'abord, un rapide aperçu de ce que fait le code. J'ai deux tables: Entreprises et Clients. Il existe une relation un à plusieurs entre les entreprises et les clients (une entreprise peut avoir plusieurs clients).Pourquoi DataViewManager ne procède pas au tri?

Dans certaines logiques de traitement, j'ai les deux tables chargées dans un DataSet - chacune est DataTables. J'ai ajouté une DataRelation pour définir la relation, et cela fonctionne lorsque j'utilise GetChildRows sur un enregistrement de la table Companies.

Cependant, j'ai besoin de trier les enregistrements retournés. Après avoir parcouru quelques pages, il semble que DataViewManager soit la solution, et j'ai examiné plusieurs exemples de base. Cependant, je ne peux pas trier mes lignes. Ai-je manqué quelque chose, ou est-ce que je ne l'utilise pas comme il est censé être utilisé? Exemple de code:

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 

Peu importe ce que je fais, le premier client retourné a un nom qui commence par un « B » et le second a un qui commence par un « A ». De là, l'ordre est tout mélangé. Si j'utilise mes données entières au lieu du sous-ensemble que j'utilisais pour tester, le premier client retourné a un nom de famille qui commence par 'J'. Il semble qu'il utilise toujours le tri par défaut utilisé avant d'essayer d'utiliser DataViewManager.

Des idées?

+0

Je viens d'aller de l'avant et utilisé un DataTable.Select pour obtenir le filtre et le tri. Je suis toujours curieux de savoir quelle est la méthode appropriée lors de l'utilisation de DataViewManager - ou cela s'applique-t-il uniquement à l'utilisation de DataViews? – Alarion

Répondre

0

Je pense que vous devriez utiliser DataView pour obtenir une vue triée du DataTable.

En regardant le document MSDN, il semble que DataViewManager stocke les paramètres par défaut (comme celui de DataTable, lorsqu'il est créé).

Quelqu'un qui a travaillé avec cela peut faire la lumière sur cela.