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 :

[VS2005] Connexion à la base dans une application à plusieurs form


Sujet :

Windows Forms

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut [VS2005] Connexion à la base dans une application à plusieurs form
    Bonjour,

    Je réalise une application en C# sous VS 2005 avec une base sous SqlServer2000.

    Mon application va être composé de plusieurs fenêtres (Form). La première c'est le menu donc la fenêtre principale qui grâce à des boutons ouvre d'autre fenêtres.

    Les autres fenêtres auront besoin de données qui sont dans ma base de données donc j'ai décidé de mettre le composant SqlConnexion, le SqlDataAdapter, .... dans la première fenêtre.
    Mais dans mon code comment puis-je faire pour appeler le dataAdapter, DataSet se trouvant au niveau de la première Form??

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    namespace GestionPersonnelle
    {
        public partial class Fm_Service : Form
        {
    public Fm_Service()
            {
                InitializeComponent();
                dbDs_service1.Clear();
                dbAd_service.Fill(dbDs_service1);
                affichePosCpt();
            }
    ...............................;
    Le programme me génère l'erreur suivante :
    Erreur 1 Le nom 'dbDs_service1' n'existe pas dans le contexte actuel C:\Documents and Settings\loic\Mes documents\Visual Studio 2005\Projects\GestionPersonnelle\GestionPersonnelle\Fm_Service.cs 16 13 GestionPersonnelle
    Erreur 2 Le nom 'dbAd_service' n'existe pas dans le contexte actuel C:\Documents and Settings\loic\Mes documents\Visual Studio 2005\Projects\GestionPersonnelle\GestionPersonnelle\Fm_Service.cs 17 13 GestionPersonnelle
    Erreur 3 Le nom 'dbDs_service1' n'existe pas dans le contexte actuel C:\Documents and Settings\loic\Mes documents\Visual Studio 2005\Projects\GestionPersonnelle\GestionPersonnelle\Fm_Service.cs 17 31 GestionPersonnelle
    Comment puis-je faire??

    Merci d'avance.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Déjà, le fait de coder des accès à la base de donnée dans le code des form dénote une conception qu'on peut qualifier d'originale .....

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Bluedeep
    Déjà, le fait de coder des accès à la base de donnée dans le code des form dénote une conception qu'on peut qualifier d'originale .....
    Je ne code pas d'accès à la base de données dans le code de la form, je veux simplement appeler les composants dataAdapter, dataSet(qui se trouve dans la form principal) à partir de ma seconde form par exemple.

    Cela est-il possible?? Si oui, comment je peux faire??

    A SAVOIR
    : voici le code de ma première form.
    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
    namespace GestionPersonnelle
    {
        public partial class Fm_Menu : Form
        {
            public Fm_Menu()
            {
                InitializeComponent();
                dbCo_gesper.Open();
            }
     
            private void bt_service_Click(object sender, EventArgs e)
            {
                Fm_Service FS = new Fm_Service();
                FS.Show();
            }
        }
    }
    Merci d'avance.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Ben, si, tu codes des accès à la base dans le code de ta form.

    Pour ma part, sur une (toute) petite application, je mets typiquement :

    - une classe DataAccessLayer qui va exposer les méthodes de CRUD (le 'R' étant pris ici au sens large) et consommer et délivrer des objets métiers.

    - un NS "BusinessObjects" avec tous les classes objets métiers
    - un NS "BusinessRules" avec les classes de manipulations d'objets métier (pas indispensable sur une appli qui gère essentiellement du CRUD)
    - les form qui vont appeler des méthodes des classes BusinessRules et/ou éventuellement directement la DataAccessLayer

    - si deux forms doivent "causer" entre elles (cas assez rare dans l'absolu), elle ne le font que par événement.

    - règle générale : le NS System.Data n'a rien à faire dans les Forms

    Maintenant tu fais comme tu veux

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    - règle générale : le NS System.Data n'a rien à faire dans les Forms
    Il faut reconnaître, à la décharge de loic20h28, que le designer de winforms n'incite pas forcément à une séparation en couches bien propre. Comme il permet de faire du binding sur des DataSets / DataView, il se permet aussi de mettre des datasets dans la form elle-même.

    Et puis les dataSet/Table/View/Whatever sont dans la toolbox des winforms par défaut
    ಠ_ಠ

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Il faut reconnaître, à la décharge de loic20h28, que le designer de winforms n'incite pas forcément à une séparation en couches bien propre. Comme il permet de faire du binding sur des DataSets / DataView, il se permet aussi de mettre des datasets dans la form elle-même.

    Et puis les dataSet/Table/View/Whatever sont dans la toolbox des winforms par défaut

    Entiérement d'accord avec toi.

    Je me contentais de lui décrire ce que je considère comme une bonne pratique, peu "couteuse" en dév et facile de mise en oeuvre.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonjour,

    désolé de répondre que maintenant.

    Merci pour vos réponses, je vais regarder cela dés que j'aurais un peu de temps et j'essaye de vous tenir au courant.

    Cordialement

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonjour,

    voila j'ai fais des recherches et j'ai voulu essayer de faire quelque chose.

    J'ai mon formulaire principal nommée "Fm_menu" et mon autre formulaire nommé "Fm_Employe" (d'autre formulaire arriverons par la suite.)

    Dans ma base de données j'ai 2 tables
    :
    tp1_employe(numero, nom, prenom, cadre, sexe, sce#)
    tp1_service(code, designation)
    le champ sce de la table tp1_employe fais référence au champ code de la table tp1_service.

    Au niveau du formulaire "Fm_Menu", j'ai :
    * un dataAdapteur pour chaque table ("dbAd_employe" et dbAd_service")
    * un dataSet regroupant le tout ("dbDs_emplsce")
    * un SqlConnexion ("dbCo_gesper")

    A l'intérieur de mon formulaire principal, pour le moment j'ai un bouton nommé "bt_employe".

    voici le code associé à ce formulaire :
    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
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Fiche5
    {
        public partial class Fm_Menu : Form
        {
            public Fm_Menu()
            {
                InitializeComponent();
                dbDs_empSce1.Clear();
                dbAd_employe.Fill(dbDs_empSce1, "tp1_employe");
                dbAd_service.Fill(dbDs_empSce1, "tp1_service");
                Fm_employe femp = new Fm_employe(dbDs_empSce1);
            }
     
            private void bt_employe_Click(object sender, EventArgs e)
            {
                Fm_employe FE = new Fm_employe();
                FE.Show();
            }
        }
    }

    Ensuite dans ma "Fm_employe", j'ai
    :
    * Une textBox pour numero, nom, prenom, salaire. ("tb_numero", "tb_nom", "tb_prenom", "tb_salaire")
    * Une comboBox pour le service.
    * Une checkBox pour le cadre(coché si c'est un cadre sinon pas coché)
    * deux radio bouton dans un GroupBox pour chaque sexe("rb_masculin", "rb_feminin")
    voici le code associé à ce formulaire :
    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
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Fiche5
    {
        public partial class Fm_employe : Form
        {
            dbDs_empSce dbDs;
     
            public Fm_employe()
            {
                InitializeComponent();
            }
     
            public Fm_employe(dbDs_empSce p_dbDs): this()
            {
               // dbDs_empSce dbDs = new dbDs_empSce();
                dbDs = p_dbDs;
                tb_numero.DataBindings.Add(new Binding("Text", dbDs, "tp1_employe.numero"));
                tb_nom.DataBindings.Add(new Binding("Text", dbDs, "tp1_employe.nom"));
            }
        }
    }

    Mon problème est le suivant
    :
    c'est que dans le formulaire "Fm_employe" rle numero ni le nom ne s'affiche pas dans les textBox appropriés.

    Comment puis-je faire??
    Quelqu'un as t-il une idée??

    Cordialement

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Besoin de votre aide s'il vous plais!!
    Bonjour tout le monde,

    Cela fais plusieurs jour que je me prend la tête à trouver comment résoudre mon problème car je sais que cela peux fonctionner.

    Si je rajoute une TextBox dans mon formulaire "Fm_Menu" et que je met le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox1.DataBindings.Add("Text", dbDs_empSce1, "tp1_employe.numero");
    Cela m'affiche bien le numéro dans la textBox donc cela foncitonne.

    Mais dans "Fm_employe" ceci fonctionne pas.
    Re-voici le code que j'utilise :
    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Fiche5
    {
        public partial class Fm_employe : Form
        {
            dbDs_empSce dbDs;
     
            public Fm_employe()
            {
                InitializeComponent();
            }
     
            public Fm_employe(dbDs_empSce p_dbDs): this()
            {
               // dbDs_empSce dbDs = new dbDs_empSce();
                dbDs = p_dbDs;
                this.tb_numero.DataBindings.Add(new Binding("Text", dbDs, "tp1_employe.numeroColumn"));
                this.tb_nom.DataBindings.Add("Text", dbDs, "tp1_employe.nom");
            }
        }
    }
    En sachant qu'au niveau de cette form, il n'y a pas de DataSet, ... je fais appel à celui se trouvant au niveau de ma form principal ("Fm_Menu").
    Mais ceci fonctionne pas.
    Je me demande si le problème est pas dût au faite que j'appel dbDs_empSce(nom du dataSet) et non dbDs_empSce1 (objet du type dbDs_empSce), qu'en pensez vous??

    Quelqu'un a t'il une idée pour m'éclairer??

    Merci d'avance

  10. #10
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Salut,

    déjà, je te conseille de respecter les normes de nommage des types et des variables, parce que là c'est limite illisible... Les types doivent être comme ça : MonTypeSuperChouette", les variables comme ça : "maVariable".
    Ton code deviendrait alors par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Fm_employe(EmployeSet set): this()
    {
      this._set = set;
      this.tb_numero.DataBindings.Add("Text", this._set, "tp1_employe.numeroColumn");
      this.tb_nom.DataBindings.Add("Text", this._set, "tp1_employe.nom");
    }
    Parce que se souvenir de ce que peut bien vouloir dire "dbDs_empSce", c'est pas évident évident.
    Ensuite, pour ce qui est de ton pb : mets des points d'arrêt dans ton code, regarde la valeur de ton dataset, regarde s'il a bien une table qui s'appelle tp1_employe, regarde si cette table a bien un champ nom, regarde si ce champ est bien défini. Et vérifie tes textbox, aussi.
    ಠ_ಠ

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Guulh
    déjà, je te conseille de respecter les normes de nommage des types et des variables, parce que là c'est limite illisible... Les types doivent être comme ça : MonTypeSuperChouette", les variables comme ça : "maVariable".
    Ton code deviendrait alors par exemple
    Code :
    public Fm_employe(EmployeSet set): this()
    {
    this._set = set;
    this.tb_numero.DataBindings.Add("Text", this._set, "tp1_employe.numeroColumn");
    this.tb_nom.DataBindings.Add("Text", this._set, "tp1_employe.nom");
    }Parce que se souvenir de ce que peut bien vouloir dire "dbDs_empSce", c'est pas évident évident.
    Je comprend tout a fais ce que tu vient de m'expliquer mais on m'a appris comme ça.
    explication de "dbDs_empSce" :
    * Ds => Ce qui signifie DataSet.
    * empSce => emp comme employé et Sce comme service car ce dataSet regroupe les 2 tables.

    Ensuite, pour ce qui est de ton pb : mets des points d'arrêt dans ton code, regarde la valeur de ton dataset, regarde s'il a bien une table qui s'appelle tp1_employe, regarde si cette table a bien un champ nom, regarde si ce champ est bien défini. Et vérifie tes textbox, aussi.
    Donc lorsque je met un point d'arrêt à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.tb_numero.DataBindings.Add("Text", dbDs, "tp1_employe.numero");
    et un à la ligne Il passe par la première ligne alors qu'elle se situe dans le deuxième construsteur de ma form "Fm_employe" et ensuite il va sur la deuxième ligne.
    Je trouve cela bizare vu que mon formulaire principal c'est "Fm_Menu" et non "Fm_Employe". Qu'en pensez vous??
    Voici ci-joint une image montrant ce que j'obtiens lorsque je glisse ma souris sur dbDs.
    Je vois vraiment pas comment faire!!

    Merci d'avance!!

  12. #12
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Je comprend tout a fais ce que tu vient de m'expliquer mais on m'a appris comme ça.
    Ouais beh on t'as appris n'importe quoi... Regarde les noms de type présents dans le framework .Net : DataGridView, ApplicationSettings, bref des vrais mots entiers lisibles sans avoir à décoder.
    Citation Envoyé par loic20h28 Voir le message
    Il passe par la première ligne alors qu'elle se situe dans le deuxième construsteur de ma form "Fm_employe" et ensuite il va sur la deuxième ligne.
    Tu peux donc en déduire que ce constructeur est pas appelé ; s'il est pas appelé, c'est que tu l'as pas appelé. Appelle le et il s'exécutera.
    Comment crées-tu ta form Fm_employe ?
    ಠ_ಠ

  13. #13
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Guulh
    Tu peux donc en déduire que ce constructeur est pas appelé ; s'il est pas appelé, c'est que tu l'as pas appelé. Appelle le et il s'exécutera.
    Voici via le document word ci-joint les différentes partie de code que le programme exécute.

    Comment crées-tu ta form Fm_employe ?
    Je vais dans l'explorateur de solution, je clique sur "Fiche 5" clique droit puis sur "Ajouter" et "Formulaire windows".
    Voir l'image ci-joint.

    Merci d'avance pour votre aide!!
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  14. #14
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Voici via le document word ci-joint les différentes partie de code que le programme exécute.
    Si je poste sur ce forum, c'est pas pour resoudre ton probleme, c'est pour te montrer ou il est pour que tu le resolves tout seul.
    Citation Envoyé par loic20h28 Voir le message
    Je vais dans l'explorateur de solution, je clique sur "Fiche 5" clique droit puis sur "Ajouter" et "Formulaire windows".
    Tu vois la difference entre une classe et une instance de classe ?
    Ce dont tu me parles, c'est la creation de la classe Fm_employe. Mais une classe toute seule, ca sert a rien. Il faut apres que tu en crees des instances, avec le mot cle new, qui appelle un constructeur defini dans cette classe.

    Donc, je repete ma question, de facon moins ambigue cette fois-ci. Avant d'afficher la fenêtre (methode Show), tu la crees. Ou est la ligne qui cree cette fenêtre, et quel constructeur appelle-t-elle ?
    (au fait, la reponse est dans ton premier post. Pas besoin de fouiller tout le code que tu viens de mettre en piece jointe)
    ಠ_ಠ

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Guulh
    Si je poste sur ce forum, c'est pas pour resoudre ton probleme, c'est pour te montrer ou il est pour que tu le resolves tout seul.
    Je sais trés bien et ce que je te demande juste c'est de m'aider et pas de me donner le résultat directement.

    Tu vois la difference entre une classe et une instance de classe ?
    Ce dont tu me parles, c'est la creation de la classe Fm_employe. Mais une classe toute seule, ca sert a rien.
    Oui je fais la différence entre une classe et une instance de classe. J'ai mal compris ta question et je m'en excuse!!

    Donc, je repete ma question, de facon moins ambigue cette fois-ci. Avant d'afficher la fenêtre (methode Show), tu la crees. Ou est la ligne qui cree cette fenêtre, et quel constructeur appelle-t-elle ?
    Ben si je regarde mon code, on créé le formulaire dans le constructeur de Fm_Menu (voir ligne en rouge) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            public Fm_Menu()
            {
                InitializeComponent();
                dbDs_empSce1.Clear();
                dbAd_employe.Fill(dbDs_empSce1, "tp1_employe");
                dbAd_service.Fill(dbDs_empSce1, "tp1_service");
     Fm_employe femp = new Fm_employe(dbDs_empSce1);
    On appel le deuxième constructeur de la classe Fm_Employe plus précisément celui la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     public Fm_employe(dbDs_empSce p_dbDs): this()
            {
                dbDs = p_dbDs;
                this.tb_numero.DataBindings.Add("Text", dbDs, "tp1_employe.numero");
                this.tb_nom.DataBindings.Add("Text", dbDs, "tp1_employe.nom");
            }
    Cordialement

  16. #16
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Oui je fais la différence entre une classe et une instance de classe. J'ai mal compris ta question et je m'en excuse!!
    Non t'excuse pas, j'aurais du etre plus clair.
    Citation Envoyé par loic20h28 Voir le message
    Ben si je regarde mon code, on créé le formulaire dans le constructeur de Fm_Menu (voir ligne en rouge) :
    L'ennui, c'est que c'est pas le seul endroit ou tu crees une instance de cette classe...
    ಠ_ಠ

  17. #17
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Guulh
    L'ennui, c'est que c'est pas le seul endroit ou tu crees une instance de cette classe...
    Effectivement tu avais raison, il y avais surement un problème de cohésion entre les 2.
    Ceci m'affiche bien le numero, le nom. Je ferais le reste demain dans la journée car là je vais aller au dodo.

    Voici le code de la classe Fm_Menu :
    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Fiche5
    {
        public partial class Fm_Menu : Form
        {
            public Fm_Menu()
            {
                InitializeComponent();
                dbDs_empSce1.Clear();
                dbAd_employe.Fill(dbDs_empSce1, "tp1_employe");
                dbAd_service.Fill(dbDs_empSce1, "tp1_service");
               // Fm_employe femp = new Fm_employe(dbDs_empSce1);
            }
     
            private void bt_employe_Click(object sender, EventArgs e)
            {
                Fm_employe FE = new Fm_employe(dbDs_empSce1);         
                FE.Show();
            }
        }
    }
    Voici le code de la classe Fm_Employe :
    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Fiche5
    {
        public partial class Fm_employe : Form
        {
            public dbDs_empSce dbDs;
     
            public Fm_employe()
            {
                InitializeComponent();
            }
     
            public Fm_employe(dbDs_empSce p_dbDs): this()
            {
                dbDs = p_dbDs;
                this.tb_numero.DataBindings.Add("Text", dbDs, "tp1_employe.numero");
                this.tb_nom.DataBindings.Add("Text", dbDs, "tp1_employe.nom");
            }
        }
    }
    Je te tiens au courant et en attendant je laisse le statu en "NON RESOLU" au cas ou que j'ai encore besoin d'aide!!

    Cordialement

  18. #18
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonjour,

    Pour le moment, j'ai un petit problème qui est le suivant :
    ma liste déroulante qui me permet d'afficher la liste des services et d'afficher celui correspondant à l'employé fonctionne pas vraiment.

    Voici le code :
    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
    public Fm_employe(dbDs_empSce p_dbDs): this()
            {
                dbDs = p_dbDs;
     
                // Affichage des données correspondants aux textBox
                this.tb_numero.DataBindings.Add("Text", dbDs, "tp1_employe.numero");
                this.tb_nom.DataBindings.Add("Text", dbDs, "tp1_employe.nom");
                this.tb_prenom.DataBindings.Add("Text", dbDs, "tp1_employe.prenom");
                this.tb_salaire.DataBindings.Add("Text", dbDs, "tp1_employe.salaire");
     
                // Checked pas Text.
                this.cb_cadre.DataBindings.Add("Checked", dbDs, "tp1_employe.cadre");
     
                // Cas particulier de la liste des services
                this.cb_service.DataSource = dbDs.tp1_service;
                this.cb_service.DataBindings.Add("SelectedValue", dbDs, "tp1_employe.sce");
     
                // Affichage du sexe de l'employé
                DataRowView rowView = this.BindingContext[dbDs, dbDs.tp1_employe.TableName].Current as DataRowView;
                this.rb_masculin.Checked = ((bool)rowView.Row["sexe"] == true);
                this.rb_feminin.Checked = !this.rb_masculin.Checked;
     
                affichePosCpt();
            }
    Voici ci-joint l'image correspondant à ce que j'obtiens.

    Je vois vraiment pas d'où peux provenir ce problème.

    Cordialement.
    Fichiers attachés Fichiers attachés

  19. #19
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    ಠ_ಠ

  20. #20
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Guulh
    J'ai résolu mon problème.

    Mais j'ai un problème pour enregistrer les changements, voici le code correspondant au bouton "ok" :
    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 bt_validation_Click(object sender, EventArgs e)
            {
                DialogResult dr = MessageBox.Show("Voulez-vous sauvegarder tout les changements?", "Sauvegarder et Quitter l'application", MessageBoxButtons.YesNo);
                if (dr == DialogResult.Yes)
                {
                    DataRowView rowView = this.BindingContext[dbDs, dbDs.tp1_employe.TableName].Current as DataRowView;
                    rowView.Row["sexe"] = this.rb_masculin.Checked ? true : false;
    // instance de la classe Fm_Menu             
       Fm_Menu FM = new Fm_Menu();
    // Appel de la méthode update_dataAdapter();
                    FM.update_dataAdapter();
                }
            }
    voici le code de la méthode "update_dataAdapter()" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void update_dataAdapter()
            {
                this.BindingContext[dbDs_empSce1, dbDs_empSce1.tp1_employe.TableName].EndCurrentEdit();
                dbAd_employe.Update(dbDs_empSce1, dbDs_empSce1.tp1_employe.TableName);
            }
    L'enregistrement ne se fait pas, avez-vous une idée de la raison?? car je voit pas trop là!!
    Auriez-vous fais cela??si non, comment feriez-vous dans mon cas??

    merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] supprimer une ligne de ma base dans une application web MVC 2
    Par hamzovic dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 15/04/2012, 04h16
  2. Réponses: 0
    Dernier message: 07/05/2011, 22h30
  3. Réponses: 0
    Dernier message: 24/06/2010, 12h11
  4. Style Outlook dans une application Window Form
    Par Klemsy78 dans le forum C#
    Réponses: 2
    Dernier message: 16/04/2010, 20h59
  5. Fonction d'export de base dans une application web
    Par skunkies dans le forum BIRT
    Réponses: 0
    Dernier message: 11/12/2009, 11h44

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