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

C# Discussion :

[C#/SqlServer] Comment récupérer un xml stocké dans un varchar ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut [C#/SqlServer] Comment récupérer un xml stocké dans un varchar ?
    Bonjour,

    Voila je stoque un bout de XML dans u champ varchar(max) de ma base de donnee SqlServer 2005

    supposant que le champ contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <points><point><x>20</x><y>100</y></point>
    Quand je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                _xmlFile = dr["XmlJoin"].ToString();
            }
    _xmlFile contient alors les valeurs des balises cad 20100, je compren pas pourquoi je ne recupere pas la chaine "<points><point><x>20</x><y>100</y></point>"

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Salut

    Deux problèmes possibles a cela:

    - Vérifie tes données, tu as pu avoir un problème a l'enregistrement
    - Suivant la méthode que tu utilise pour afficher le contenu XML, les balises peuvent etre ignorées, verifie la valeur du champ dans le déboggeur

    Autrement, je vois pas

    Note: Il existe un type de champ XML (a la place de varchar) ca pourrait etre plus adapté

  3. #3
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Salut Piotrek et Merci pour la reponse.

    J'ai executer la requete dans un editeur sql de sqlserver et le cham p retouné contient toute la sequence xml donc c'est surement un probleme dans la methode ToString()
    Pour le type XML il est tres exigent sur le format du xml à inserer et il permet essentiellement d'executer des requetes Xquery ce qui n'est pas le cas pour moi .

    Peut etre que vous connaissez un autre moyen de recuperer le resultat de larequete au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _xmlFile = dr["XmlJoin"].ToString();

  4. #4
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     _xmlFile = dr.GetString(dr.GetOrdinal("XmlJoin"));

  5. #5
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Ca retourne la meme chose parce que j'ai reduit ma requet et dr.GetString(0) retourne la meme chose

  6. #6
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Meme j'ai transformé le tpe de la colonne en XML
    donc j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dr.GetSqlXml(dr.GetOrdinal("XmlJoin")).Value;
    et ca retourne toujours les valeurs et oi je veux toute la chaine

  7. #7
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut


    Decidement je ne comprends pas... Tu verifie bien dans le deboggeur, en faisant une pause lors de l'execution?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.Net/SqlServer] Comment se connecter ?
    Par Pedro Varela dans le forum Accès aux données
    Réponses: 6
    Dernier message: 25/08/2006, 15h48
  2. [C# 2.0/SqlServer] Comment optimiser l'affectation d'un nouveau login ?
    Par joujou_le_fou dans le forum Accès aux données
    Réponses: 5
    Dernier message: 16/06/2006, 21h19
  3. [ADO.Net][SQLServer]Comment former valeur SmallDateTime?
    Par brousaille dans le forum Accès aux données
    Réponses: 15
    Dernier message: 25/03/2006, 18h42
  4. [Oracle/MS SqlServer] Comment choisir judicieusement ?
    Par damou2004 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 25/01/2006, 18h18
  5. [sqlserver] comment appeler une application a distance
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 13/09/2005, 17h24

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