Comparaison de DataSet - AsEnumerable() [Résolu]

Signaler
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Bonjour le Forum,


Je créé, dans un DataSet, deux tables issues de deux fichiers Excel.
Private da As OleDb.OleDbDataAdapter
Private ds As DataSet = New DataSet

Dim MyConnexionCGN As OleDbConnection = New OleDbConnection _
(ConnectingExcel(MyFileCGN, "HDR=YES"))
Dim MyQueryCGN As String = " SELECT * " & _
" FROM [Informations_CGN$] WHERE [Job] IS NOT NULL " & _
" ORDER BY [Environnement] ASC, [Application] ASC, [Job] ASC"
MyConnexionCGN.Open()
da = New OleDb.OleDbDataAdapter(MyQueryCGN, MyConnexionCGN)
da.Fill(ds, "CGN")
MyConnexionCGN.Close()

Dim MyConnexionPDP As OleDbConnection = New OleDbConnection _
(ConnectingExcel(MyFilePDP, "HDR=YES"))
Dim MyQueryPDP As String = " SELECT * " & _
" FROM [Jobs$] WHERE [Job] IS NOT NULL " & _
" ORDER BY [Environnement] ASC, [Application] ASC, [Job] ASC"
MyConnexionPDP.Open()
da = New OleDb.OleDbDataAdapter(MyQueryPDP, MyConnexionPDP)
da.Fill(ds, "PDP")
MyConnexionPDP.Close()


Mes premières recherches (https://msdn.microsoft.com/fr-fr/library/bb669119%28v=vs.110%29.aspx) m'amène à l'utilisation de la méthode AsEnumerable().

Je n'ai pas trop compris son utilisation !!!

Dans un premier temps, je souhaiterai :
- extraire les items [Environnement], [Application] et [JOB] qui sont dans chaque row de ma table (PDP) et qui ne sont pas dans ma table (CGN).

L'exemple de MSDN suggère une query au lieu de passer pas des boucles For ... Next.

Merci de vos suggestions.
jean-marc

1 réponse

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
En modifiant mes deux Select.
" SELECT [Environnement], [Application], [Job]"


et
            Dim items = ds.Tables("PDP").AsEnumerable().Except(ds.Tables("CGN").AsEnumerable(), _
DataRowComparer.Default)

For Each row In items
Me.RichTextBox1.AppendText(dt(MyDt) & Convert.ToChar(Keys.Tab) & row("Environnement") & _
Convert.ToChar(Keys.Tab) & row("Application") & _
Convert.ToChar(Keys.Tab) & row("Job"))
Next

j'énumère les items qui sont dans la 1ère table et absents dans la 2ème table.

Désolé pour ce post hâtif.

jean-marc