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 :

[VS 2010] Classe métier et update


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Octobre 2009
    Messages : 127
    Points : 61
    Points
    61
    Par défaut [VS 2010] Classe métier et update
    Bonjour à tous,

    Contexte :

    En bref je bosse sur une application de gestion d'appareils photos(coté administration et client).

    J'ai une classe métier BDD générique qui me permet de :
    - me connecter à me BDD
    - ouvrir ma connexion
    - fermer ma connexion
    - exécuter un reader( à partir de paramètres comme la requete )
    - executer une requete (executenonquery à partir d'une requete en paramètre)
    - remplir un Datagridview

    Problème :

    J'ai un formulaire " modifier ", mon datagridview est remplis à l'aide de la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect_bdd.remplir_dgv(dgv_modif, rqt_dgv, "Produit");
    Voici le code de ma fonction remplir_dgv :

    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 void remplir_dgv(DataGridView dgv,string rqt,string table)
             {
     
                 cmdMySQL = cnx.CreateCommand();
                 cmdMySQL.CommandText = rqt;
     
                 this.cnx.Open();
     
                 da = new MySqlDataAdapter(cmdMySQL);
                ds = new DataSet();
                da.Fill(ds,'"'+table+'"');
                dgv.DataSource = ds;
                dgv.DataMember = '"'+table+'"';
     
                this.cnx.Close();
     
             }
    Mon Datagridview est bien remplis, seulement j'essaye maintenant dans ma classe métier BDD de faire une fonction générique "modifier_dgv".

    Et là j'ai un soucis car ayant remplis plusieurs datagridview avec ma fonction remplir_dgv(), et bien je n'ai plus en " mémoire " le Dataset correspondant au datagridview que je souhaite modifié.

    Ainsi je n'arrive pas à modifier mon datagridview avec le code adapté qui, dans mon idée, est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                builder = new MySqlCommandBuilder(da);
     
                //Mise à jour
                da.Update(ds, "produit");
     
                //On vide / recharge le dataset
                ds.Clear();
                da.Fill(ds, "produit");
    Mon objectif est donc de faire la fonction ci-dessus en plus générique afin que je puisse la mettre dans ma classe métier.

    Ainsi à l'aide de paramètres à définir je pourrais faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect_bdd.modifierdgv(dgv_modif, param2,param3...);
    Si je n'ai pas été assez clair, merci de me le dire je re-formulerai.

    Merci d'avance,

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Ouille !!

    Un petit problème de manipulation de string aussi !

    Voici ce que je te suggere

    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
            public DataTable remplir_dgv(DataGridView dgv,string rqt,string table)
             {
     
                 cmdMySQL = cnx.CreateCommand();
                 cmdMySQL.CommandText = rqt;
     
                 this.cnx.Open();
     
                 da = new MySqlDataAdapter(cmdMySQL);
                ds = new DataSet();
                da.Fill(ds,table);  // CORRECTION !!
               // NB : ceci suffit da.Fill(ds);  
     
                dgv.DataSource = ds;
                dgv.DataMember = ds.Tables[table];  // CORRECTION !!
               // NB : Ceci suffit  : dgv.DataMember = ds.Tables[0]; 
     
                this.cnx.Close();
                return ds.Tables[0];
     
             }

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Octobre 2009
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup de ta réponse !

    J'essaye ça dès ce soir et j'édit mon post !

    Encore merci,

Discussions similaires

  1. Quelle est la définition d'une classe métier ?
    Par soulivane dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 31/03/2010, 16h20
  2. Réponses: 7
    Dernier message: 24/08/2007, 10h57
  3. Mapping entre ma classe métier et l'UI
    Par Giovanny Temgoua dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 19/08/2007, 12h37
  4. [EJB2] Accès Interface locale depuis une classe métier.
    Par rigor dans le forum Java EE
    Réponses: 2
    Dernier message: 10/10/2006, 14h44

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