Bonjour,

Je suis en train de programmer un synchronisateur qui prend les données d'une base de données Acomba et les insert dans une base de données MySQL. Jusque la, tout est parfait. Mon problème arrive par la suite.

Je dois comparer les données de ces base de données. J'ai donc rempli 2 DataSet et je compare mais cela est très mais très lent. J'ai prêt de 18,000 lignes et 155 colonnes (donc beaucoup de données) dans un DataSet et l'autre est vide alors il ca ne devrait pas être très long lors de la comparaison. C'est peut-être moi qui m'y prend mal mais la je ne sais plus du tout comment faire pour que cela sois un minimum rapide.

Merci,
Friedrick

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
16
17
18
19
20
21
22
 
private void firstpass(ref DataSet ds1, string pk1, ref DataSet ds2, string pk2)
{
    //ds1 has priority
    for (int x = 0; x < ds1.Tables[0].Rows.Count; x++)
    {
        //check if row exist in ds2
        if (!this.isin(ds2, ds1.Tables[0].Rows[x][pk1].ToString(), pk2))
        {
            //primary key of ds1 does not match ds2
            DataRow newrow = ds2.Tables[0].NewRow();
            for (int c = 0; c < ds2.Tables[0].Columns.Count; c++)
            {
                newrow[c] = ds1.Tables[0].Rows[x][c];
                logBox.Text += ">>>New Data : " + ds1.Tables[0].Rows[x][c].ToString() + "\n";
                scroll();
            }
            ds2.Tables[0].Rows.Add(newrow);
            //newrow.Delete();
        }
    }
}