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 :

Dataset qui se vide inopinément !


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut Dataset qui se vide inopinément !
    Bonjour,

    je tente de créer une application console mais j'ai un souci avec un dataset qui se vide sans que j'ai le temps d'en récupérer les donnes, je m'explique :

    J'ai une classe dont le but est de récupérer les données de la DB et des les afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    class MaClasse
    {
    	public DataSet T;
     
    	public void InitialiserTableau(SqlConnection c)
    	{
    		// Objet Command
    		SqlDataAdapter adapter = new SqlDataAdapter(ma_requete, c);
     
    		DataSet T = new DataSet();
     
    		// remplissage du dataset de destination
    		adapter.Fill(T, "Truc");
    	}
     
    	public void AfficheDataset()
    	{
    		// affichage
    		for (int i = 0; i < T.Tables["Truc"].Rows.Count; i++)
    		{
    			Console.WriteLine(T.Tables["Truc"].Rows[i]["PrimaryKey"].ToString() + " - ");
    		}
    	}
     
        }
    Dans le programme principal, j'instancie un objet de la classe, j'exécute la query et je tente de l'afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MaClasse c = new MaClasse();
    c.InitialiserTableau(cnx);
    c.AfficheDataset();
    Si je tente d'afficher la valeur du Dataset dans la méthode InitialiserTableau, j'ai des résultats. Par contre, il semblerait que c.T (le data set associé à c) soit vide alors que je viens de l'instancier...
    Sauriez vous pourquoi ?

    Merci de votre aide !!!

  2. #2
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    Bon, coup de bol, j'ai trouvé la solution... en fait, c'est à cause de cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSet T = new DataSet();
    il faut la placer dans la déclaration de la propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class MaClasse
    {
    	public DataSet T = new DataSet();
     
    	public void InitialiserTableau(SqlConnection c)
    	{
    		// Objet Command

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Par défaut
    Ta correction est à moitié exacte

    en fait via cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSet T = new DataSet();
    tu créais une nouvelle variable nommé T de type DataSet, mais n'ayant une définition que dans ta fonction.

    Or, tu avais déjà une variable globale à ta classe nommé T. (ce qui devais t'afficher un avertissement sur VS). La variable local a la fonction était donc prioritaire a ta variable plus globale, masquant cette dernière.

    La bonne syntaxe aurait tout simplement était:Voila pour la petite précision

  4. #4
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    Ta réponse est tout à fait exacte ;-) , merci d'avoir corrigé la mienne !!!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/09/2006, 11h21
  2. inserer un numeric qui est vide?
    Par shinrei dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 14/03/2006, 21h39
  3. [VB.NET] DataSet qui ne retourne pas de résultat
    Par Lois dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/06/2004, 17h07
  4. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40
  5. [ODBC] erreur SQL pour les unions qui renvoient vide
    Par fabriceMerc dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/11/2003, 11h06

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