Je cherche un moyen de récupérer un delta entre deux datasets.
Ces deux datasets sont les résultats de la même requête sql, a 5 minutes d'intervalles.
Elles ont donc les mêmes schéma.
Par convention, la colonne "PK" contient un identifiant unique qui ne change pas entre les requêtes.
Voici le raisonnement que je tiens a l'heure actuelle :
Chargement du dataset 1
Création de la PK sur le dataset
Chargement du dataset 2
Création de la PK sur le dataset
AcceptChanges() sur chacun des datasets
dataset1.Merge(dataset2);
dataset1.getChanges();
Cette dernière instruction me renvoie toujours null, et je ne saisis toujours pas pourquoi.
Mon jeu de donnée contient exactement les mêmes données (soit 36 lignes), exceptée l'une des valeurs d'une ligne, qui passe de "255" à "100".
Voici le code utilisé :
datasetdiff est toujours null.
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 public DataSet dataset1, dataset2, datasetdiff; public string datasetpath1 = @"D:\testwriter\aDS2.xml", datasetpath2 = @"D:\testwriter\aDS3.xml"; dataset1 = new DataSet(); dataset2 = new DataSet(); dataset1.ReadXml(datasetpath1); // Par convention, la colonne "PK" est la clef. foreach (DataTable table in dataset1.Tables) table.PrimaryKey = new DataColumn[] { table.Columns["PK"] }; dataset1.AcceptChanges(); dataset2.ReadXml(datasetpath2); // Par convention, la colonne "PK" est la clef. foreach (DataTable table in dataset2.Tables) table.PrimaryKey = new DataColumn[] { table.Columns["PK"] }; dataset2.AcceptChanges(); dataset1.Merge(dataset2); datasetdiff = dataset1.GetChanges();
Quelqu'un aurait-il une idée ?
Partager