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

ASP.NET Discussion :

[C#] [SQLSERVER2000] Dataset et Xml


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut [C#] [SQLSERVER2000] Dataset et Xml
    J'utilise la propriété de sqlserver 2000 a généré du Xml.

    Je souheterai avoir dans mon fichier xml un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
              <etudiant> 
                       <nom> toto </nom>
                       <prenom> titi </titi>
              </etudiant> 
              ....
    mais quand je lance ma requête, que je mets le résultat dans un dataset et que je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
               myds.WriteXML&#40;@"c&#58;\\data.xml"&#41; ;
    j'au juste un truc comme ça sous mon data.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
             <newdataset>
                  <table>
                     <XML_543_....>&#91;b&#93;System.Byte&#91;&#93; &#91;/b&#93;</XML_543_....>
                   </table>
              </newdataset>
    Merci

  2. #2
    Membre chevronné
    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
    Points : 1 904
    Points
    1 904
    Par défaut
    J'utilise la propriété de sqlserver 2000 a généré du Xml
    c'est a dire? tu fais une requete FOR XML ?

    Pour enregistrer un fichier xml depuis une base sql server il y a deux moyens:

    -> Soit tu recupere un dataset classique avec une requete SQL normale et tu utilise la methode dataset.writeXML

    -> Soit tu fais une requete FOR XML dans sql server et tu traite le retour avec Microsoft.Data.SqlXml
    un exemple dispo sous http://www.codeproject.com/cs/database/vgsqlxml.asp


    Mais faut pas faire les deux en meme temps

  3. #3
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Oups!sorry

    Oui je fais une requête FOR XML, mais le problème c ce quelle me renvoie comme données.
    C de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <newdataset> 
                  <table> 
                     <XML_543_....>&#91;b&#93;System.Byte&#91;&#93; &#91;/b&#93;</XML_543_....> 
                   </table> 
              </newdataset>

    moi je voudrai voir apparaitre le contenu de System.Byte[] parce que je suppose que c là que sont stockées les données.


  4. #4
    Membre chevronné
    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
    Points : 1 904
    Points
    1 904
    Par défaut
    Bon deja le fait que t'aies <newdataset> dans ton xml c'est pas normal, ca veut dire que apparement tu fais du FOR XML dans la requete pis tu mets ca dans un dataset (par sqlclient oledb ou odbc) et tu sauves avec dataset.writeXML

    bin c'est pas bon : ca te genere du portnawak

    c'est soit l'un soit l'autre (mon premier post)

    -> Bon a suppose que tu optes pour la methode FOR XML, tu peux preformatter les resultats avec quelques mots-cles optionnels dans la requete (FOR XML AUTO, RAW et EXPLICIT)
    tu peux ainsis demander a sql server qu'il te presente les donnees comme tu veux http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsql/ac_openxml_0alh.asp pour voir les resultats des differentes syntaxes

    A mon avis un FOR XML AUTO devrait aller.

    Ensuite tu dois utiliser Microsoft.Data.SqlXml pour recuperer l'xml de sql server sans tout casser (et non pas oledb ni odbc) je te recolle le lien qui montre comment ca marche

    http://www.codeproject.com/cs/database/vgsqlxml.asp

    Dans cet exemple le gars parse le resultat de sql server, pour toi pas besoin d'aller jusque la: une fois que t'as recupere le resultat tu le sauves dans un fichier xml.

    -> Je te deconseille de passer par un dataset normal + requete normale car le xml genere sera toujours en fonction de la structure du dataset, ca commencera toujours comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <NomDeTonDataSet>
        <NomDeLaPremiereDatatable>
            ...
            donnees
            ...

  5. #5
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    en fait je viens de me rendre compte que le résultat de la requete c bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    System.Byte&#91;&#93;
    et pas mes colonnes???

  6. #6
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    ok merci

    Je vais tester.


  7. #7
    Membre chevronné
    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
    Points : 1 904
    Points
    1 904
    Par défaut
    Bin il doit se passer un truc bizzare en fait

    Le resultat que sql server renvoie est deja en xml, celui ci est place dans le dataset (alors que le pauvre est habitue a recevoir des enregistrements )
    et rebelotte le mysterieux contenu du dataset est retranscrit a nouveau en XML par dataset.writeXML

  8. #8
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    ça à l'air de marcher mais ou est ce que je peux trouver la dll
    Microsoft.Data.SqlXml

    Merci


  9. #9
    Membre chevronné
    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
    Points : 1 904
    Points
    1 904
    Par défaut
    ah oui excuse-moi

    http://www.microsoft.com/downloads/details.aspx?FamilyId=4C8033A9-CF10-4E22-8004-477098A407AC&displaylang=en

  10. #10
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Merci pour t renseignements si précieux.

    Je vais me débrouiller avec tout ça pour faire ce que j'ai à faire.

    Peut etre une dernière question.

    Mon fichier xml comprtera en fait un niveau de hiérarchie assez profond
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            <etablissement>
                     <etudiant>
                      ... informations ...
                     </etudiant>
     
                    &#91;b&#93;<enseignant>  ....   </enseignant>&#91;/b&#93;                   
                     &#91;b&#93;<date>  ....   </date>&#91;/b&#93;
     
            </etablissement>
     
            <etablissement>
                            ... IDEM QUE CI DESSUS ...
            </etablissement>
    Le truc c que pour récupérer un étudiant et c infos ça je sais faire.

    Mais si je veux d'une part pouvoir, à la fin de chaque étudiant, rajouter un enseignant responsable pour cet étudiant et ensuite une date comment je peux faire.

    Puis comment rajouter derrière un autre établissement?

    Ce qui me gène c la notion de profondeur.

    Est-ce que je dois utiliser un Dataset de Dataset???

    Merci

  11. #11
    Membre chevronné
    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
    Points : 1 904
    Points
    1 904
    Par défaut
    Dans ce cas le niveau de profondeur est dependant de la requete, le fait de passer par le dataset y changerait pas grand chose -> c'est sur la requete qu'il faut bosser. Apparement rajouter un prof et une date ca devrait pas etre trop difficile

    fait voir a quoi elle ressemble ta requete

  12. #12
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Je me suis débrouillé comme g pu, et ça marche bien.

    Merci pour tes conseils


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

Discussions similaires

  1. Exportation d'un dataset en xml
    Par wakan dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/08/2009, 17h27
  2. DataSet et XML
    Par sauceaupistou dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/08/2008, 11h50
  3. du dataset vers xml et du xml vers dataset
    Par tarikmahf dans le forum C#
    Réponses: 1
    Dernier message: 26/01/2008, 20h25
  4. [Dataset et Xml] synchronisation
    Par lemagicien dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/06/2007, 15h11
  5. Réponses: 8
    Dernier message: 16/03/2006, 10h32

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