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#]Comment lire un DataSet ?


Sujet :

ASP.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 239
    Points
    239
    Par défaut
    ça dépend de ce que tu récupères comme résultat... ^^
    tu récupères quoi?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    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 expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    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 actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Euh, non je fais pas de dataBinding.

    Voila ce que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 239
    Points
    239
    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 actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    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 expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    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 : 239
    Points
    239
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 239
    Points
    239
    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 actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    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 expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    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 actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    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 : 239
    Points
    239
    Par défaut
    ben msdn par exemple...

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    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 : 239
    Points
    239
    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 : 239
    Points
    239
    Par défaut
    en ce qui concerne la sérialisation tu tappes sérialisation ^^

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    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 actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    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.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2006, 08h33
  2. Comment lire un fichier image
    Par Charlemagne dans le forum DirectX
    Réponses: 9
    Dernier message: 12/03/2004, 00h22
  3. [Debutant] Comment lire la taille d'un fichier binaire ?
    Par Invité dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/12/2003, 19h20
  4. Réponses: 2
    Dernier message: 06/12/2002, 07h50
  5. Réponses: 5
    Dernier message: 20/08/2002, 18h01

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