Bonjour à tous,
Je dois récupérer un DataRow dans un DataSet associé à la valeur du champ d'un autre DataRow d'un autre DataSet et procède ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ... // Retrieving corresponding header foreach (DataRow hrow in DsList.Find(delegate(DataSet d) { return getReceptionHeader(d, row["PSYNCKEY"].ToString()); }).Tables[0].Rows) { this.SetReceptionAttributes(headerAttributes, hrow); } ...Cependant et même si ce code semble fonctionner, je me demande s'il n'y a pas de méthode plus adaptée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 private static bool getReceptionHeader(DataSet ds, String synckey) { if (ds.DataSetName.Equals("Reception")) { bool resp = false; foreach (DataRow row in ds.Tables[0].Rows) { resp = row["SYNCKEY_MMW"].Equals(synckey); if (resp == true) break; } return resp; } else { return false; } }
Davantage d'explications : il s'agit d'une liste de DataSet dont l'un possède les entêtes de réception et l'autre des postes dont le champ PSYNCKEY correspond au champ SYNCKEY_MMW du premier. Ainsi se décompose le modèle de données.
Dans cette méthode, j'aggrège les entêtes et les postes pour composer des messages XML à synchroniser avec le Middleware.
Sincèrement,
Ludovic
Partager