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 :

Déclaration de variables dans InitializeComponent()


Sujet :

C#

  1. #1
    epc
    epc est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut Déclaration de variables dans InitializeComponent()
    Bonsoir,
    Je souhaite mettre une variable dans InitializeComponent().
    Mon code fonctionne, mais j'ai un avertissement "la variable _olebdd n'est pas déclarée ou n'a jamais été déclarée".
    Merci de m'indiquer la procédure à suivre pour corriger mon code.
    Marcel.

    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
    public class Profs : System.Windows.Forms.Form
    { ...
    public string _olebdd;
     
     public Profs()
     { ...
     _fichier_bd_profs = "baseProfs.mdb";
     _olebdd = _repertoire_bdd+"\\"+_fichier_bd_profs;
    . ..}
     private void InitializeComponent()
     {...
     this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
     // oleDbConnection1
     chaine_profs = "...; Data Source=" + _olebdd + "; ...; ";
     this.oleDbConnection1.ConnectionString = @chaine_profs;
     ...}
    ...}

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    ne rien mettre dans InitializeComponent, c'est pas fait pour !
    cette sub est recréé automatiquement par visual studio à chaque fois que c'est nécessaire

    le constructeur est beaucoup plus approprié !

  3. #3
    epc
    epc est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    Merci pour ta réponse.

    Le code écrit précédement est utilisé par les stations clients. La variable _olebdd indique le chemin qui permet de pointer sur la base de données sur le serveur. Si je ne passe pas cette adresse au début du programme, il ne trouvera pas la base et ne s'executera pas.

    Je ne sais pas comment créer un constructeur !!!

    Peux-tu m'aider ?

    Cordialement

    Marcel

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Si tu ne sais pas ce qu'est un constructeur et comment en créer un tu devrais regarder les cours C# de ce site histoire de voir les bases, car il y a pas mal de choses qui tu ne dois pas connaître à ce moment.

    Pour info le constructeur est déjà présent dans le code donné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Profs : System.Windows.Forms.Form
    { 
        public Profs()
        {
            ...
        }
    }

  5. #5
    epc
    epc est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    Ok pour le constructeur. Mais ce que je ne sais pas, c'est comment initialiser InitializeComponent() et en particulier oleDbConnection1 avec mon adresse qui pointe sur mon serveur.

    Je pourrais mettre cette adresse sous forme de constante, mais j'ai donné mes deux programmes (l'un serveur et l'autre client) à d'autres collègues qui n'ont pas la même configue serv/client dans leur bahut.
    C'est pour cela que je dois rester en variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     private void InitializeComponent()
     {...
     this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
     // oleDbConnection1
     this.oleDbConnection1.ConnectionString = //venant d'un constructeur ???

  6. #6
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Tu n'as pas à chercher à "initialiser" la méthode InitializeComponent(). Cette méthode est gérée par le designer de Visual Studio. Ton code doit être mis ailleurs, dans le constructeur ou une méthode appelée par celui-ci.

    La méthode InitializeComponent quant à elle doit être appelée depuis le constructeur.

    Sinon par rapport à l'initialisation de ta chaine de connexion, il y a plusieurs façon de procéder, on peut faire avec le constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Profs(string connectionString)
    {
        ...
        this.oleDbConnection1.ConnectionString = connectionString;
    }
    Mais on peut aussi avoir une gestion de paramètres (avec les fichiers de configuration par exemple ou bien une gestion perso) donnant accès à ce genre de chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Profs()
    {
        ...
        this.oleDbConnection1.ConnectionString = MesParams.ConnectionString ;
    }

  7. #7
    epc
    epc est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    La méthode InitializeComponent quant à elle doit être appelée depuis le constructeur.
    Mais la métode InitializeComponent est lu en premier ???


    J'ai un message d'erreur qui me demande de placer new devant chaine_profs qui n'est pas intégré à oleDbConnection1 ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public string chaine_profs;
    public Profs()
    {
    _olebdd = _source_bdata+"\\"+_fichier_bd_profs;         
    chaine_profs = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source="+_olebdd+";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False";
    this.oleDbConnection1.ConnectionString = chaine_profs.ConnectionString;
    }
    Merci

  8. #8
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine_profs.ConnectionString
    Ce bout code ne signifie rien. Un objet de type string ne possède pas de propriété ConnectionString, contrairement à un objet de type OleDbConnection. Tu mélanges les exemples que j'ai donné et ce que tu as pu comprendre de l'objet et du C# jusqu'à présent j'ai l'impression. Par contre je n'avais pas fait assez attention au code de ton premier post, ce qui aurait pu éviter tout ceci

    Change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine_profs = "...";
    this.oleDbConnection1.ConnectionString = chaine_profs.ConnectionString;
    En
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.oleDbConnection1.ConnectionString = "...";
    Et cela devrait aller mieux

    Mais la métode InitializeComponent est lu en premier ???
    Les méthodes sont exécutées dans leur ordre d'apparition dans le bloc code, donc si la première chose qui se trouve dans le constructeur c'est l'appel à cette méthode alors oui.

  9. #9
    epc
    epc est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    SUPER MERCI - ENFIN TOUT EST RENTRE DANS L'ORDRE

    Merci

    Marcel

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

Discussions similaires

  1. Déclaration de variables dans une procédure stockée
    Par jbrasselet dans le forum Développement
    Réponses: 5
    Dernier message: 16/02/2009, 09h00
  2. déclaration des variables dans une fonction
    Par kawther dans le forum Débuter
    Réponses: 4
    Dernier message: 22/10/2008, 01h17
  3. Réponses: 6
    Dernier message: 06/02/2008, 16h19
  4. Réponses: 8
    Dernier message: 03/11/2006, 15h55
  5. [Optimisation?] Déclaration de variable dans les boucles
    Par romaintaz dans le forum Langage
    Réponses: 5
    Dernier message: 11/08/2006, 16h08

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