Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 20 sur 20
  1. #1
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut [C#]Comment lire un DataSet ?

    Voila je fais une requête dans ma base de données, je stocke le résultat dans un DataSet (je sais pas si c'est le mieux, si vous avez d'autre idée je suis tout ouïe).
    Je sais que ma requête va me renvoyer qu'un seul résultat.
    Je suis obligé pour parcourir mon DataSet de faire

    Code :
    1
    2
    3
    foreach (DataRow row in monDataSet.Tables[0].Rows) {
             Row[0].ToString()
    }
    Je trouve ça assez énervant.

    Vous avez peut être une autre solution

  2. #2
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2005
    Messages : 235
    Points : 190
    Points
    190

    Par défaut

    ça dépend de ce que tu récupères comme résultat... ^^
    tu récupères quoi?

  3. #3
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut

    Ba en fait, je récupère trois champs.

    Sinon pour info gwadakillah, j'ai résolu le problème du mouseover, c'était VS.NET qui avait mis l'attribut z-index à 112 ( va savoir pourquoi) . Mais je n'ai pas encore résolu celui de la récupération de mon checkbox cliqué par l'utilisateur.

  4. #4
    Membre Expert
    Avatar de Mehdi Feki
    Inscrit en
    décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 113
    Points : 1 396
    Points
    1 396

    Par défaut

    Justement pourquoi tu utilse un DataSet ? Tu vas faire un DataBinding quelque part ?

    Sinon utilise un DataReader !!!
    Mehdi Feki : Modérateur .Net

  5. #5
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut

    Euh, non je fais pas de dataBinding.

    Voila ce que je fais
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Création d'un DataSet
    DataSet monDataSet = new DataSet();
     
    monDataSet = WebService.GetUnCom(rdv[var].ToString());
     
    foreach (DataRow dr in monDataSet.Tables[0].Rows) {
    	string nom = dr["Nom"].ToString();
    	string prenom = dr["Prenom"].ToString();
            MaCase2.Attributes.Add("onmouseover","montre('<table id=null border=1><tr><td>Commercial : </td><td>" + nom + "</td><td> " + prenom + "</td></tr></table>')");										MaCase2.Attributes.Add("height","26");
    	MaCase2.Attributes.Add("onmouseout","cache()");						Maligne2.Cells.Add(MaCase2);
     
    }
    Et donc je me disais que c'était pas super de faire un for each pour récupérer les éléments de mon dataset

  6. #6
    Membre Expert
    Avatar de Mehdi Feki
    Inscrit en
    décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 113
    Points : 1 396
    Points
    1 396

    Par défaut

    Ya un moyen de modifier le service Web ?

    Sinon si t'es sûr que le dataset contient une seule ligne Alors :

    Code :
    1
    2
     
    DataRow dr = monDataSet.Tables[0].Rows[0];
    utilise comme meme un bloc try catch au cas où le dataset est vide, on sait jamais
    Mehdi Feki : Modérateur .Net

  7. #7
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2005
    Messages : 235
    Points : 190
    Points
    190

    Par défaut

    utilise une hashtable à la place d'un dataset comme cela tu récupères tes infos par la clé :p

  8. #8
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut

    Yep t'inquiète mehdi_tn j'ai fait un try catch dans mon webservice que je gère après dans mon code.

    DataRow dr = monDataSet.Tables[0].Rows[0];

    Je viens de tester sa marche nickel

    Euh sinon gwadakillah, je ne sais pas me servir de hashtable et puis je suis pas sur que sa soit utilie pour juste deux enregistrements mais si non c'est vrai que sa pourrait m'être utile pour autre chose.
    Merci je vais étudié le fonctionnement des tables de hachage.

  9. #9
    Membre Expert
    Avatar de Mehdi Feki
    Inscrit en
    décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 113
    Points : 1 396
    Points
    1 396

    Par défaut

    Ah si c'est bien toi qui a implémenté le WebService alors retourner un DataSet n'est pas une bonne idee !!!

    Je propose plutot un string contenant un xml contenant tes enregistrements
    Mehdi Feki : Modérateur .Net

  10. #10
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2005
    Messages : 235
    Points : 190
    Points
    190

    Par défaut

    Ben une Hashtable c'est simple à utiliser, c'est un dictionnaire(d'ailleurs il dérive d'IDictionnary si mes souvenirs sont bons.)
    En fait contrairement à un Array ou tu as un index et la valeur, la tu as une clé et une valeur.
    Exemple :
    Code :
    1
    2
    3
    Hashtable hExemple = new Hashtable();
    hExemple.Add("Nom","taz");
    hExemple.Add("Prenom","mania");
    Comme cela quand tu veux récupérer ton nom :
    tu tappes juste
    que tu castes en string si tu veux récupérer en chaîne de caractères..

  11. #11
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2005
    Messages : 235
    Points : 190
    Points
    190

    Par défaut

    mehdi_tn a raison car comme cela, ton webservice pourra etre récupérer par une autre plateforme si il faut...
    ya la serialization soap aussi ...

  12. #12
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut

    Yep pourquoi renvoyer un DataSet dans les webservices c'est pas bien, je vais pratiquement que ça pour tous mes WebServices

    Je propose plutot un string contenant un xml contenant tes enregistrements, je sais pas comment on fait non plus (je viens de débuter doucement lol)

    Si c'est pas bien de renvoyer des DataSet, je vais utilisé ta méthode gwadakillah, elle m'a l'air assez simple à utiliser

    ya la serialization soap aussi
    Oula vous parler chinois pour moi c'est quoi ce truc, qu'est ce qu'il faut que j'utilise ???

  13. #13
    Membre Expert
    Avatar de Mehdi Feki
    Inscrit en
    décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 113
    Points : 1 396
    Points
    1 396

    Par défaut

    Citation Envoyé par tazmania
    Je propose plutot un string contenant un xml contenant tes enregistrements, je sais pas comment on fait non plus (je viens de débuter doucement lol)
    Il est temps d'apprendre, il y a plein de tutos sur internet sur la manipulation de XML avec le Framework !!!!

    J'avais un ptit doute sur l'utilisation de HashTable avec un service Web, mais apparament c'est possible puisque elle implemente ISerializable !!
    Mehdi Feki : Modérateur .Net

  14. #14
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut

    T'as pas un petit site sous la main
    Que je reprenne un petit exemple

  15. #15
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2005
    Messages : 235
    Points : 190
    Points
    190

    Par défaut

    ben msdn par exemple...

  16. #16
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut

    Oui mais le msdn c'est pour la version VS.NET 2005 et non pas 2002.
    Par quel mot je dois chercher

  17. #17
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2005
    Messages : 235
    Points : 190
    Points
    190

    Par défaut

    dans l'URL remplace msdn par msdn2 et tu devrais trouver ton bonheur..
    sinon sur ton poste tu n'as pas installé msdn ?

  18. #18
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2005
    Messages : 235
    Points : 190
    Points
    190

    Par défaut

    en ce qui concerne la sérialisation tu tappes sérialisation ^^

  19. #19
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut

    Non, je n'ai pas installé MSDN, et je ne sais même plus ou je les ranger, faut voir le bordel qu'il y a sur mon bureau.

    Sinon je vais tester ton astuce

    Merci

  20. #20
    Membre confirmé
    Inscrit en
    novembre 2004
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 364
    Points : 205
    Points
    205

    Par défaut

    Ouah pour la sérialisation, il faut que je créé des classes.
    Mais bon il dise pas ou c'est que je dois faire sa.

    Dans mon WebService, dans ce cas là je retourne quoi ???
    Ou alors dans la page qui va appeller le WebService ???

    Vous êtes sur qu'il y a pas plus simple

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •