Accueil > > > JOINTURE ENTRE UN DATASET ET UN FICHIER XML
JOINTURE ENTRE UN DATASET ET UN FICHIER XML
Information sur la source
Description
Ce Code est Composé de 2 classes : clsXML et ClsGrammaire je mets ici les Fonctions joinLibelle() et XmlToDs qui permettent de Faire une jointure entre 2 fichiers XML ou un dataset et un Fichier XML selon leur utilisation chacune de ces fonction est placée dasn une classe differente dans mon code je les appel donc en creant un objet a partir de ma classe dans le code suivant objXMl represente une instanciation de la classe clsXML
Source
-
- 'Tout d'abord la fonction XmlToDs() Stockant les Informations d'un Fichier XML dans un dataset
- 'et necessitant :
- Imports System.Xml
- Imports System.Data
-
- 'Stockage des données d'un fichier xml dans un dataset
- Public Function XmltoDs(ByVal str_Path As String, ByRef ds As DataSet) As Boolean
- 'Str_Path: Chemin Du Fichier XML
- 'Ds : Dataset qui va contenir le resultat
-
- Dim xtr As New XmlTextReader(str_Path)
- Try
- ds.ReadXml(xtr)
- XmltoDs = True
- Catch ex As Exception
- MsgBox(ex.Message)
- XmltoDs = False
- Finally
- xtr.Close()
- End Try
- End Function
-
- 'Puis la Fonction joinLibelle()qui effectue la jointure entre le dataset et le fichier XML
- 'et necessitant :Imports System.Data
- ' et : dim objXMl as new clsXML
-
- 'Function joignant le libellé des Bases au dataset passé en parametre
- Private Function JoinLibelle(ByRef Ds As DataSet, ByVal Str_Path As String, ByVal str_NomChamp As String, ByVal str_Champ1 As String, ByVal str_Champ2 As String, ByVal str_RecupNom As String) As Boolean
- '**************************************************************************************
- '*** Ds: Dataset de Base sur lequel on Va venir Ajouter la jointure ***
- '*** Str_Path : Chemin d'Acces du Fichier XMl que l'on va ajouter a la jointure ***
- '*** Str_NomChamp : Nom que l'on veut donner a la nouvelle Colonne ***
- '*** Str_NomChamp1 : Nom du Champ de jointure dans le Dataset ***
- '*** Str_NomChamp2 : Nom du Champ de Jointure dans le Fichier XML ***
- '*** Str_RecupNom : Nom du Champ Que l'on veut recuperer dans le fichier XML ***
- '**************************************************************************************
-
- Dim Ds_Base As New DataSet
- Dim monRowG As DataRow
- Dim monRowB As DataRow
- Dim Dt_base As DataTable
- Dim dt_Gram As DataTable
- Dim i As Integer = 1
- Dim j As Integer = 1
-
- Try
-
- 'recuperation sous forme de fichier de Dataset du Fichier XML contenant les informations joindre
- If objXMl.XmltoDs(Str_Path, Ds_Base) = False Then
- JoinLibelle = False
- MsgBox("joinLibelleBase : Probleme de chargement du Fichier XML")
- Exit Function
- End If
-
-
- dt_Gram = Ds.Tables(0)
- Dt_base = Ds_Base.Tables(0)
-
- dt_Gram.Columns.Add(str_NomChamp)
-
- For Each monRowG In dt_Gram.Rows
- For Each monRowB In Dt_base.Rows
- If CInt(monRowG(Trim(str_Champ1))) = CInt(monRowB(Trim(str_Champ2))) Then 'Si les Identifiants Correspondent on Ajoute le Champ
- monRowG(str_NomChamp) = monRowB(str_RecupNom)
- End If
- j += 1
- Next
- i += 1
- Next
-
- Catch ex As Exception
-
- MsgBox(ex.Message)
- JoinLibelle = False
- Exit Function
-
- End Try
-
- JoinLibelle = True
-
- End Function
-
-
- 'Exemple d'utilisation :
-
- dim objXMl as New clsXML
- dim objGrammaire as New clsGrammaire
- dim Ds as New dataset
- dim Str_Path as String="C:\MonProjet\Type.xml"
- dim Str_Path2 as String="C:\MonProjet\Color.xml"
-
- If objXMl.XmltoDs(Str_Path, Ds) = False Then
- MsgBox("Problème de chargement du Fichier XML")
- Exit sub
- End If
-
- If objGrammaire.joinLibelle(Ds,Str_Path2,"LibColor","Couleur","ID","StrColor")=False Then
- MsgBox("Problème de Jointure Dataset/XML")
- Exit sub
- End If
-
- 'Ds va alors contenir les Champs TYPE+une colonne "LibColor" contenant les Valeurs de StrColor ou TYPE.Couleur=Color.ID
-
-
'Tout d'abord la fonction XmlToDs() Stockant les Informations d'un Fichier XML dans un dataset
'et necessitant :
Imports System.Xml
Imports System.Data
'Stockage des données d'un fichier xml dans un dataset
Public Function XmltoDs(ByVal str_Path As String, ByRef ds As DataSet) As Boolean
'Str_Path: Chemin Du Fichier XML
'Ds : Dataset qui va contenir le resultat
Dim xtr As New XmlTextReader(str_Path)
Try
ds.ReadXml(xtr)
XmltoDs = True
Catch ex As Exception
MsgBox(ex.Message)
XmltoDs = False
Finally
xtr.Close()
End Try
End Function
'Puis la Fonction joinLibelle()qui effectue la jointure entre le dataset et le fichier XML
'et necessitant :Imports System.Data
' et : dim objXMl as new clsXML
'Function joignant le libellé des Bases au dataset passé en parametre
Private Function JoinLibelle(ByRef Ds As DataSet, ByVal Str_Path As String, ByVal str_NomChamp As String, ByVal str_Champ1 As String, ByVal str_Champ2 As String, ByVal str_RecupNom As String) As Boolean
'**************************************************************************************
'*** Ds: Dataset de Base sur lequel on Va venir Ajouter la jointure ***
'*** Str_Path : Chemin d'Acces du Fichier XMl que l'on va ajouter a la jointure ***
'*** Str_NomChamp : Nom que l'on veut donner a la nouvelle Colonne ***
'*** Str_NomChamp1 : Nom du Champ de jointure dans le Dataset ***
'*** Str_NomChamp2 : Nom du Champ de Jointure dans le Fichier XML ***
'*** Str_RecupNom : Nom du Champ Que l'on veut recuperer dans le fichier XML ***
'**************************************************************************************
Dim Ds_Base As New DataSet
Dim monRowG As DataRow
Dim monRowB As DataRow
Dim Dt_base As DataTable
Dim dt_Gram As DataTable
Dim i As Integer = 1
Dim j As Integer = 1
Try
'recuperation sous forme de fichier de Dataset du Fichier XML contenant les informations joindre
If objXMl.XmltoDs(Str_Path, Ds_Base) = False Then
JoinLibelle = False
MsgBox("joinLibelleBase : Probleme de chargement du Fichier XML")
Exit Function
End If
dt_Gram = Ds.Tables(0)
Dt_base = Ds_Base.Tables(0)
dt_Gram.Columns.Add(str_NomChamp)
For Each monRowG In dt_Gram.Rows
For Each monRowB In Dt_base.Rows
If CInt(monRowG(Trim(str_Champ1))) = CInt(monRowB(Trim(str_Champ2))) Then 'Si les Identifiants Correspondent on Ajoute le Champ
monRowG(str_NomChamp) = monRowB(str_RecupNom)
End If
j += 1
Next
i += 1
Next
Catch ex As Exception
MsgBox(ex.Message)
JoinLibelle = False
Exit Function
End Try
JoinLibelle = True
End Function
'Exemple d'utilisation :
dim objXMl as New clsXML
dim objGrammaire as New clsGrammaire
dim Ds as New dataset
dim Str_Path as String="C:\MonProjet\Type.xml"
dim Str_Path2 as String="C:\MonProjet\Color.xml"
If objXMl.XmltoDs(Str_Path, Ds) = False Then
MsgBox("Problème de chargement du Fichier XML")
Exit sub
End If
If objGrammaire.joinLibelle(Ds,Str_Path2,"LibColor","Couleur","ID","StrColor")=False Then
MsgBox("Problème de Jointure Dataset/XML")
Exit sub
End If
'Ds va alors contenir les Champs TYPE+une colonne "LibColor" contenant les Valeurs de StrColor ou TYPE.Couleur=Color.ID
Conclusion
Le fIChier XML.Zip Contient Les FIchiers XMl permettant de Tester la Source
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
[VB.NET] Problème lecture fichier XML dans Dataset [ par ludo7910 ]
J'essaie de lire un fichier de récupérer les infos d'un fichier xml dans un dataset, je fais comme ceci:Module Module1 Sub Main() Dim DataSe
Gestion xml dans DataGrid [ par Januka ]
Bonjour,je souhaiterais gérer un fichier xml au travers d'un datagrid.Je crée donc un Dataset, dans lequel je mets les infos du fichier xml, puis j'at
Gestion xml dans DataGrid [ par Januka ]
Bonjour,je souhaiterais gérer un fichier xml au travers d'un datagrid.Je crée donc un Dataset, dans lequel je mets les infos du fichier xml, puis j'at
Gestion xml dans DataGrid [ par Januka ]
Bonjour,je souhaiterais gérer un fichier xml au travers d'un datagrid.Je crée donc un Dataset, dans lequel je mets les infos du fichier xml, puis j'at
Gestion xml dans DataGrid [ par Januka ]
Bonjour,je souhaiterais gérer un fichier xml au travers d'un datagrid.Je crée donc un Dataset, dans lequel je mets les infos du fichier xml, puis j'at
dataset et XML en .NET [ par Kashiko ]
Je voudrait pouvoir traiter les differentes donne d'un fichier xml grace a un datasetPour cela j'ai creer mon dataset et j'y ai inserer mes donnees gr
[VB.NET] jointure de dataset ? [ par playmo420 ]
Salut J'ai un petit problème : j'utilise un dataset se remplissant grâce à un fichier xml. Un des membres d'une table est en foreign ke
dataset+string [ par j_aub ]
slt tt le monde,dites moi svp : si j'ai un dataset et ke je veu remplir a partir d'une chaine de caractères "cette chaine contien des donnée
XML Schema [ par matbeu ]
Bonjour, je vous expose mon probleme: je construis un dataset a l'aide d'un ReadXMLSchema. Le .xsd lu contient des minoccurs=1, maxoccurs=1 dans de
XML Schema / minoccurs / maxoccurs [ par matbeu ]
Bonjour, je vous expose mon probleme: je construis un dataset a l'aide d'un ReadXMLSchema. Le .xsd lu contient des minoccurs=1, maxoccurs=1 dans de
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
LISTER KEYS.KEYLISTER KEYS.KEY par Onin42
Cliquez pour lire la suite par Onin42
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|