Comparaison de DataSet - AsEnumerable()

Résolu
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 5 avril 2015 à 10:57
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 5 avril 2015 à 11:48
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

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
5 avril 2015 à 11:48
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
0
Rejoignez-nous