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

Windows Forms Discussion :

[C#] Probleme de tableau


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut [Resolu] [C#] Probleme de tableau
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    private void Form4_Load(object sender, System.EventArgs e)
    		{
    		Connexion.Open();
    			try
    			{
    				//requete permettant de determiner les limites du tableau (calcul le nombre de personnes)	
    				string sql1="SELECT COUNT(*) FROM Personnes";
    				requete=new SqlCommand(sql1,Connexion);
    				lecteur=requete.ExecuteReader();
    				lecteur.Read();
    				string[][] tableau= new string[lecteur.GetInt32(0)][];
    				lecteur.Close();
    			}
    			catch(SqlException f)
    			{
    				MessageBox.Show("Erreur dans la requete SQL: " + f.Message);
    			}		
    		//Connexion.Close();
    		//Connexion.Open();
    			try
    			{
    				//nouvelle requete pour obtenir la liste des personnes
    				string sql="SELECT * FROM Personnes";
    				requete=new SqlCommand(sql,Connexion);
    				lecteur=requete.ExecuteReader();
    				lecteur.Read();
    				int i=0;
    				while(lecteur.Read())
    				{
    					choix_personne.Items.Add(  lecteur.GetString(1) + ' ' + lecteur.GetString(2) + ' ' + lecteur.GetString(0));
    					tableau[i][0]=lecteur.GetString(0);
    					tableau[i][1]=lecteur.GetString(1);
    					tableau[i][2]=lecteur.GetString(2);
    					i++;
    					MessageBox.Show(i.ToString());
    				}
     
    				lecteur.Close();
    			}
    			catch(SqlException f)
    			{
    				MessageBox.Show("Erreur dans la requete SQL: " + f.Message);
    			}		
    		Connexion.Close();
     
    		}
    Le problème dans ce code es qu'il ne trouve pas la variable tableau.
    L'erreur pointe ici.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while(lecteur.Read())
    				{
    					choix_personne.Items.Add(  lecteur.GetString(1) + ' ' + lecteur.GetString(2) + ' ' + lecteur.GetString(0));
    					//ici debut l'erreur//
                                           tableau[i][0]=lecteur.GetString(0);
    					tableau[i][1]=lecteur.GetString(1);
    					tableau[i][2]=lecteur.GetString(2);
    					i++;
    					MessageBox.Show(i.ToString());
    				}
    Pouvez vous m'aider?
    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    Il ne faut pas que t'utilises deux fois à la suite getString(x).

    Utilise une première fois pour les stocker dans une variable pour après les sauvegarder dans choix_personne, et ensuite dans le tableau...

    Mario Ramalho

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    J'ai fait comme tu m'as dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while(lecteur.Read())
    				{
    					id=lecteur.GetString(0);
    					prenom=lecteur.GetString(1);
    					nom=lecteur.GetString(2);
     
    					choix_personne.Items.Add(  prenom + ' ' + nom + ' ' + id);
    					tableau[i][0]=id;
    					tableau[i][1]=prenom;
    					tableau[i][2]=nom;
    					i++;
    					MessageBox.Show(i.ToString());
    				}
    Ca ne marche toujours pas il me fait une erreur du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Le nom 'tableau' n'existe pas dans la classe ni dans l'espace de noms 'WindowsApplication1.supprimer_personnes'
    supprimer personne etant le nom de ma fenetre.
    que puis je faire docteur?

  4. #4
    ubu
    ubu est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Salut,
    Est ce que cela ne serait pas un problème de portée ?

    Essaie de déclarer to tableau avant ton premier bloc try {} catch {}

    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
    private void Form4_Load(object sender, System.EventArgs e) 
          { 
          string[][] tableau;
          Connexion.Open(); 
     
             try 
             { 
                //requete permettant de determiner les limites du tableau (calcul le nombre de personnes)    
                string sql1="SELECT COUNT(*) FROM Personnes"; 
                requete=new SqlCommand(sql1,Connexion); 
                lecteur=requete.ExecuteReader(); 
                lecteur.Read(); 
                tableau= new string[lecteur.GetInt32(0)][]; 
                lecteur.Close(); 
             } 
             catch(SqlException f) 
             { 
                MessageBox.Show("Erreur dans la requete SQL: " + f.Message); 
             }       
    ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    alors jai du nouveau
    jai essayer en ne faisant qu'un seul try catch
    ca donne ca

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    private void Form4_Load(object sender, System.EventArgs e)
    		{
    		Connexion.Open();
    			try
    			{
    				//requete permettant de determiner les limites du tableau (calcul le nombre de personnes)	
    				string sql1="SELECT COUNT(*) FROM Personnes";
    				requete=new SqlCommand(sql1,Connexion);
    				lecteur=requete.ExecuteReader();
    				lecteur.Read();
    				string[][]tableau= new string[lecteur.GetInt32(0)][];
    				lecteur.Close();
    		//	}
    		//	catch(SqlException f)
    		//	{
    		//		MessageBox.Show("Erreur dans la requete SQL: " + f.Message);
    		//	}		
    		//Connexion.Close();
    		//Connexion.Open();
    			//try
    		//	{
    				//nouvelle requete pour obtenir la liste des personnes
    				string sql="SELECT * FROM Personnes";
    				requete=new SqlCommand(sql,Connexion);
    				lecteur=requete.ExecuteReader();
    				lecteur.Read();
    				int i=0;
    				string id="";
    				string prenom="";
    				string nom="";			
     
    				while(lecteur.Read())
    				{
    					id=lecteur.GetString(0);
    					prenom=lecteur.GetString(1);
    					nom=lecteur.GetString(2);
     
    					choix_personne.Items.Add(  prenom + ' ' + nom + ' ' + id);
    					tableau[i][0]=id;
    					tableau[i][1]=prenom;
    					tableau[i][2]=nom;
    					i++;
    					MessageBox.Show(i.ToString());
    				}
     
    				lecteur.Close();
    			}
    			catch(SqlException f)
    			{
    				MessageBox.Show("Erreur dans la requete SQL: " + f.Message);
    			}		
    		Connexion.Close();
     
    		}
    Il reconnait ma variable tableau mais il me fait une autre erreur lors du lancement de la page (pas de pb de compilation)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Une exception non gérée du type 'System.OutOfMemoryException' s'est produite dans System.windows.form.dll
     
    Info sup : Erreur lors de la création d'un handle de fenetre
    et il me renvoie sur la creation de ma fenetre par l'intermediaire de mon menu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void Supprimer_name_Click(object sender, System.EventArgs e)
    		{
    			if (this.ActiveMdiChild != null)
    			{
    				if (this.ActiveMdiChild.Name == "Supprimer des personnes")
    					// fenetre dejà ouvert
    					return;
    			}
    			//sinon création de l'objet fenetre
    			supprimer_personnes fen4= new supprimer_personnes();
    			fen4.MdiParent =this;
    			fen4.Show();
    		}
    je n'y comprend rien

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    j'i essayer ta solution UBU
    il me dit encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Documents and Settings\A5110039\Mes documents\Projets Visual Studio\WindowsApplication1\Form4.cs(241): Utilisation d'une variable locale non assignée 'tableau'
    Jai laissé les deux try catch
    Il fodrait peut etre que jarrive a l'assignée ailleurs non?
    Si c'est ca je c pas le faire ..

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    Je viens d'avoir une idée
    serait ce dû a une mauvaise initialisation du tableau?
    si oui j'aimerais savoir comment faire.
    Je suis vraiment debutant ...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    Jai trouvé la solution par moi même
    Je la post quand mm on c'est jamais ca peut servir a quelqu'un:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    private void Form4_Load(object sender, System.EventArgs e)
    		{
    			//string[][] tableau;
    			int i=0;
     
    			Connexion.Open();
    			//try
    			//{
    				//requete permettant de determiner les limites du tableau (calcul le nombre de personnes)	
    				string sql1="SELECT COUNT(*) FROM Personnes";
    				requete=new SqlCommand(sql1,Connexion);
    				lecteur=requete.ExecuteReader();
    				lecteur.Read();
    				string[,] tableau = new string[lecteur.GetInt32(0),3];
    				//MessageBox.Show(lecteur.GetInt32(0).ToString());
    				lecteur.Close();
    			//}
    			//catch(SqlException f)
    			//{
    			//	MessageBox.Show("Erreur dans la requete SQL: " + f.Message);
    			//}		
    		Connexion.Close();
    		Connexion.Open();
    			try
    			{
    				//nouvelle requete pour obtenir la liste des personnes
    				string sql="SELECT * FROM Personnes";
    				requete=new SqlCommand(sql,Connexion);
    				lecteur=requete.ExecuteReader();
    				lecteur.Read();
     
    				string id="";
    				string prenom="";
    				string nom="";			
     
    				while(lecteur.Read()&& i < 4)
    				{
    					id=lecteur.GetString(0);
    					prenom=lecteur.GetString(1);
    					nom=lecteur.GetString(2);
     
    					choix_personne.Items.Add(  prenom + ' ' + nom + ' ' + id);
    					tableau[i,0]=id;
    					tableau[i,1]=prenom;
    					tableau[i,2]=nom;
    					i++;
    					MessageBox.Show(tableau[0,2]);
    				}
     
    				lecteur.Close();
    			}
    			catch(SqlException f)
    			{
    				MessageBox.Show("Erreur dans la requete SQL: " + f.Message);
    			}		
    		Connexion.Close();
     
    		}
    La syntaxe de mon tableau n'etait pas bonne
    tableau [i,j] etait la bonne syntaxe
    A++
    Merci quand mm a ceux qui ont esayé de m'aider

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    N'oublie pas le tag [Résolu]

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

Discussions similaires

  1. [CR8.5] Probleme de tableau
    Par Sto59 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/02/2007, 16h07
  2. Probleme de tableau
    Par olly dans le forum C
    Réponses: 4
    Dernier message: 06/12/2005, 00h37
  3. Probleme de tableau paramétrable
    Par jamah dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/11/2005, 13h47
  4. jolie probleme de tableau
    Par racoon971 dans le forum C++
    Réponses: 2
    Dernier message: 04/03/2005, 12h31
  5. probleme de tableau dynamique
    Par El Krotal dans le forum C
    Réponses: 9
    Dernier message: 25/06/2004, 18h00

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