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#

  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 : 42
    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 : 42
    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 : 42
    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 : 42
    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?

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Vous avez raison

    Essayez sous Asp.Net Label1.Text="<x>1</x>"; il va afficher 1

    Bizarre ce control :S

    J'ai teste sur un text Box et ca marche impec

    Merci à Piotrek

  9. #9
    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


    Ouf, je commencais a me demander si je migrerai un jour sous sqls 2005

    En fait c'est le navigateur qui ignore toutes les balises qu'il ne connait pas. Apparement, la textbox doit convertir les balises en code affichable

+ 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