begin process at 2012 02 13 03:13:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > JOINTURE ENTRE UN DATASET ET UN FICHIER XML

JOINTURE ENTRE UN DATASET ET UN FICHIER XML


 Information sur la source

Note :
Aucune note
Catégorie :VB.NET Source .NET ( DotNet ) Classé sous :jointure, dataset, xml Niveau :Débutant Date de création :22/09/2005 Vu / téléchargé :12 670 / 734

Auteur : crilun

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source .NET (Dotnet) DATASET QUICKSORT

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) SQL SERVER & ADO.NET par Raul duke
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET2] DATASET, DATABINDINGXML - EXEMPLE DE GESTION DE CONT... par VBSorcier
Source avec Zip Source avec une capture Source .NET (Dotnet) SETSTYLE ET DATASET par andlah
Source .NET (Dotnet) FILTRER UN DATASET VIA UN DATAVIEW.ROWFILTER PUIS LE SAUVER ... par Patrice99
Source .NET (Dotnet) XML+DATAGRID par sindy74

Commentaires et avis

Commentaire de crilun le 22/09/2005 15:03:35

J'ai oublié de preciser que pour Faire la Jointure sur Les Chmaps a comparer doivent etre des Entiers.

 Ajouter un commentaire


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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,448 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales