IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[ADO.NET] Charger un xml dans la base


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 58
    Points : 41
    Points
    41
    Par défaut [ADO.NET] Charger un xml dans la base (Pb d'image)
    Bonjour,

    Je creer un fichier XML representant une de mes tables :
    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
     
    'Création de la chaîne de connexion
            Dim connectString As String = "Blablablablablabalbal"
            'Création de la connexion
            Dim connection As SqlClient.SqlConnection = New SqlClient.SqlConnection(connectString)
     
            'Création du SqlDataAdapter
            Dim da As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter("Select * from Customers", connection)
     
            'Création d'un DataSet
            Dim ds As DataSet = New DataSet
     
            'Remplissage du DataSet avec le SqlDataAdapter
            da.Fill(ds, "Customers")
     
            'Ecriture du fichier XML au moyen de la méthode WriteXml
            ds.WriteXml("D:\TestXml.xml")
    J'aimerai savoir comment le réinsérer dans une base (différente mais au schéma identique) en ajout (ma base contient déjà des éléments que je ne veux pas écraser).


    [EDIT] Je récupére toutes les infos au bon format en parcourant mon xml et en l'injectant dans ma base via une requete paramêtrée. SAUF l'attribut image qui est bisarement converti


    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut Atar,

    Moi j'ai réussi à extraire des données d'un XML (ou une sorte de XML), mais pas avec un parseur.

    J'ai juste créé une fonction (enfin, elle n"est pas tout à fait de moi, je l'ai juste remanié à ma sauce), et c'est très simple.

    Je peux te montrer ma fonction :

    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 Function PrendreEntre(ByRef Source As String, ByVal PartieDeb As String, ByVal PartieFin As String)
            Dim PosDeb As Integer
            Dim PosFin As Integer
            Dim LongueurEntre As Integer
            Dim PartieExtraite As String = 0
     
            'On enlève les " en trop de PartieDeb et PartieFin
            PartieDeb = PartieDeb.Substring(0, Len(PartieDeb))
            PartieFin = PartieFin.Substring(0, Len(PartieFin))
     
            PosDeb = Source.IndexOf(PartieDeb)
            PosFin = Source.IndexOf(PartieFin)
            LongueurEntre = PosFin - PosDeb
            If PosDeb > 0 Then
                If LongueurEntre > 0 Then
                    PartieExtraite = Source.Substring(PosDeb + Len(PartieDeb), LongueurEntre - Len(PartieDeb))
                End If
            End If
     
            Return PartieExtraite
        End Function
    Ensuite, tu l'appeles. Moi je l'ai appelé dans une boucle qui lit ligne par ligne mon fichier. Extrait de mon code qui l'appelle...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            While Not EOF(1)
                strLine = LineInput(1)
     
                strGw = PrendreEntre(strLine, "<gateway name=""", """ org=")
            End While
    Tu mets des doubles guillemets pour le caractère ", pour différencier de celui ouvrant et celui fermant.

    Sinon, si je puis me permettre, comme cela me semble dans le même domaine... Est-ce que tu saurais m'aider par hasard pour exécuter une simple requête, s'il te plaît ? J'ai réussi les requêtes d'insertion pour insérer dans ma base. Mais dès que je veux faire une requête qui affiche les données de telle table sur un clic de bouton, je ne sais pas du tout comment m'y prendre.
    J'ai essayé avec ça :

    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
    22
    23
     
            Dim cmSQL As SqlCommand
            Dim strSQL = ("Select * from utilisateur")
            cmSQL = New SqlCommand(strSQL, cnSQL)
            Dim DataAdapter As New SqlDataAdapter(cmSQL)
            Dim CmBuilder = New SqlCommandBuilder(DataAdapter)
            Dim DataSet As New DataSet()
            Dim DataTable As New DataTable
            Dim formdeux As New Form2()
            Dim DataGrid2 As New DataGridView
     
     
            cnSQL.Open()
            cmSQL.Connection() = cnSQL
     
            DataAdapter.Fill(DataSet, "utilisateur")
            DataTable = DataSet.Tables("utilisateur")
            formdeux.DataGrid2.DataSource = DataTable
            formdeux.Show()
     
            cnSQL.Close()
     
            MsgBox("Opération effectuée", MsgBoxStyle.Information, "ok")
    Mais il doit manquer plein de trucs, car pas moyen d'avoir le résultat.

    Voilà, j'espère avoir réussi à t'aider, et que tu aies compris mes explications... Merci également si tu me dépannes !

    Harry Potter
    Dernière modification par Invité ; 24/01/2008 à 16h11.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ah par contre je remarque que ça marche en définissant directement la table UTILISATEUR dans la propriété DataSource du DataGrid.

    C'est peut-être cette partie de code qui ne marche pas alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            DataTable = DataSet.Tables("utilisateur")
            formdeux.DataGrid2.DataSource = DataTable
    Dernière modification par Invité ; 28/01/2008 à 10h53.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 58
    Points : 41
    Points
    41
    Par défaut
    Merci Harry mais sa m'aide pas vraiment.
    Je prend mon Dataset puis je le passe en XML

    J'arrive à récupérer toutes les valeurs et les réinjecter sauf l'image que j'arrive pas à récupérer, impossible de reconstruire une image avec sa.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2011, 21h08
  2. Réponses: 21
    Dernier message: 28/10/2009, 16h19
  3. Réponses: 1
    Dernier message: 06/11/2007, 16h43
  4. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Accès aux données
    Réponses: 9
    Dernier message: 24/01/2005, 09h36
  5. Champs de type XML dans une base de données
    Par Flocodoupoil dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 07/07/2004, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo