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 :

Comment appeller une variable locale d'une instance dans une autre classe?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    gerant
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : gerant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut Comment appeller une variable locale d'une instance dans une autre classe?
    Bonjour,

    Mon 1er fichier : connection_BDD.cs

    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Security.Cryptography.X509Certificates;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;
     
    namespace firipo2
    {
        public class Connection_BDD
        {
     
            public void FFconnection_BDD()
            {
                MySqlConnection connexion = new MySqlConnection("database=test;server=localhost;user id=root;pwd=");
     
     
                try
                {
                    connexion.Open();
                }
     
                catch (MySqlException co)
                {
                    MessageBox.Show(co.ToString());
                    MessageBox.Show("Non Connecte");
                }
            }
     
        }
    }


    Mon 2eme fichier : Form1.cs

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;
     
    namespace firipo2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                Connection_BDD connection_BDD = new Connection_BDD();
                connection_BDD.FFconnection_BDD();
     
                string insertQuery = "INSERT INTO employes(CAISSE,PRODUIT) VALUES (1,'Coca')";
                MySqlCommand command = new MySqlCommand(insertQuery, connexion);
     
                try
                {
                    if (command.ExecuteNonQuery() == 1)
                    {
                    //    MessageBox.Show("Data Inserted");
                    }
                    else
                    {
                        MessageBox.Show("Data Not Inserted");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                connexion.Close();
     
            }
     
            private void button2_Click(object sender, EventArgs e)
            {
                MySqlConnection connexion = new MySqlConnection("database=test;server=localhost;user id=root;pwd=");
     
                try
                {
                    connexion.Open();
                    //   MessageBox.Show("Connecte");
                }
     
                catch (MySqlException co)
                {
                    MessageBox.Show(co.ToString());
                    MessageBox.Show("Non Connecte");
                }
     
                string insertQuery = "INSERT INTO employes(CAISSE,PRODUIT) VALUES (1,'Sprite')";
                MySqlCommand command = new MySqlCommand(insertQuery, connexion);
     
                try
                {
                    if (command.ExecuteNonQuery() == 1)
                    {
                        //    MessageBox.Show("Data Inserted");
                    }
                    else
                    {
                        MessageBox.Show("Data Not Inserted");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                connexion.Close();
     
                MessageBox.Show("Non Connecte");
     
            }
     
        }
    }

    La variable local de connection_BDD.cs (connexion), n'est pas reconnu dans Form1.cs.
    Pouvez-vous m'aider?

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonsoir,

    C'est un problème de portée, tu déclares ta variable dans une méthode, elle ne sera disponible que dans celle-ci. Il te suffit de la déclarer au début de ta classe et qu'elle soit public.

    Et pour bien faire, autant utiliser une propriété, afin qu'elle ne soit accessible qu'en lecture :

    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
    namespace firipo2
    {
        public class Connection_BDD
        {
            MySqlConnection connexion;
     
            public void FFconnection_BDD()
            {
                connexion = new MySqlConnection("database=test;server=localhost;user id=root;pwd=");
     
     
                try
                {
                    connexion.Open();
                }
     
                catch (MySqlException co)
                {
                    MessageBox.Show(co.ToString());
                    MessageBox.Show("Non Connecte");
                }
            }
     
            public MySqlConnection Connexion
            {
                get { return Connexion; }
            }
     
        }
    }

  3. #3
    Futur Membre du Club
    Homme Profil pro
    gerant
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : gerant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut
    Bonsoir,

    Merci pour ta réponse, que j'ai bien compris. Par contre il y a toujours l'erreur de "connection" non trouvé. De plus un ";" est attendu après "MySqlConnection connexion".

    Qu'en penses-tu?

  4. #4
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonjour,

    Petite erreur de ma part, j'ai répondu un peu vite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MySqlConnection connexion;
    Mais le message d'erreur était assez explicite je pense.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    gerant
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : gerant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut
    Bonsoir,

    Oui, j'avais déjà remplacé le ";", maigres cela, "connexion" est toujours inconnu dans le fichier Form?

  6. #6
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonsoir,

    Tu utilises comment cette variable du coup ? Si tu n'as rien changé a part ce que je t'ai mis, il te faut utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try
                {
                    connection_BDD.Connexion.Open();
                }
    Et pareil, il te faudra déclarer ta variable connection_BDD au début de ta classe pour en modifier sa portée.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/01/2015, 15h56
  2. Classe appellant une autre classe
    Par neutrall dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 05/06/2011, 06h31
  3. Compilation d'une classe java avec cmd appelant une autre classe
    Par y_chafaqi dans le forum Général Java
    Réponses: 10
    Dernier message: 09/12/2009, 20h24
  4. appeler une autre classe en J2ME
    Par yodark dans le forum Java ME
    Réponses: 2
    Dernier message: 06/12/2007, 13h48
  5. Réponses: 4
    Dernier message: 03/11/2005, 12h14

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