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);
}
...
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; }
        }
Cependant et même si ce code semble fonctionner, je me demande s'il n'y a pas de méthode plus adaptée.

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