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 :

Comment mettre a jour un DataGriDView après la fermeture d'un Form.


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut Comment mettre a jour un DataGriDView après la fermeture d'un Form.
    Bonjour à tous,

    J'ai un Form Listing, qui fait le listing de l'inventaire, client, personnel et autre. Lorsque je double click sur un enregistrement du dataGrid cela ouvre un Form pour voir ou modifier la sélection. Lorsque je ferme se forme j'aimerais que le datadrig se refresh en reprenant les info de la db.

    Voici comment je peuple mon datagrid (partie du switch selon la catégorie demender)

    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
     
    case "Inventaire":
                        CatPanel = Cat;
                        tabControlList.SelectedTab = tabPageInv;
                        tabControlList.TabPages.Remove(tabPageEmploye);
                        string queryI = "SELECT " +
                            "I.ID, " +
                            "I.Stock, " +
                            "marque.Valeur AS Marque, " +
                            "CONCAT(model.Valeur,' ',I.Detail_Model) AS Model, " +
                            "anne.Valeur AS Anne, " +
                            "couleur.Valeur AS Couleur, " +
                            "CONCAT(I.Odo,' ',type_odo.Valeur) AS Odo " +
                            "FROM inventaire AS I " +
                            "JOIN marque ON (marque.ID = I.Marque) " +
                            "JOIN model ON (model.ID = I.Model) " +
                            "JOIN anne ON (anne.ID = I.Anne) " +
                            "JOIN couleur ON (couleur.ID = I.Couleur) " +
                            "JOIN type_odo ON (type_odo.ID = I.TypeOdo) " +
                            "ORDER BY Stock DESC";
                        root.fillDataGrid("inventaire", queryI, dataGridViewList);
                        dataGridViewList.Columns[0].Visible = false;
                        dataGridViewList.Columns[1].Width = 50;
                        dataGridViewList.Columns[2].Width = 150;
                        dataGridViewList.Columns[3].Width = 303;
                        dataGridViewList.Columns[4].Width = 50;
                        dataGridViewList.Columns[5].Width = 100;
                        dataGridViewList.Columns[6].Width = 80;
                        dataGridViewList.Columns[6].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
                        this.ShowDialog();
                        break;
    Selon la catégorie demender il ouvre le bon form.

    Voici mon FillDataGrid()

    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
     
    public static void fillDataGrid(string Cat, string query, DataGridView Dg)
            {
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                MySqlConnection SqlCnx = new MySqlConnection();
                SqlCnx.ConnectionString = GlobalClass.GlobalVarCnxStr;
                MySqlDataAdapter myAdapter = new MySqlDataAdapter(query, SqlCnx);
                MySqlCommandBuilder myCommand = new MySqlCommandBuilder(myAdapter);
                try
                {
                    myAdapter.Fill(ds, Cat);
                    dt = ds.Tables[Cat];
                    Dg.DataSource = dt;
                }
                catch (MySqlException Ex)
                {
                    MessageBox.Show("DataBase Error (fillDataGrid): " + Ex.Message, "DataBase Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                }
                finally
                {
                    myAdapter.SelectCommand.Dispose();
                    myAdapter.Dispose();
                    SqlCnx.Close();
                    SqlCnx.Dispose();
                }
            }
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    Regarde peut etre avec l'event formClosing ou formclosed pour faire un update a se moment la

  3. #3
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Comme l'a dit elnfrancois et pour être précis, il suffit que ta form1 s'abonne à l'évènement FormClosing (ou FormClosed) de tes différentes forms que tu affiches après un double clique.

    Exemple de ta form1 qui s'abonne à l'evènement FormClosing de ta form2 :

    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
    private void grid_DoubleClick(object sender, System.EventArgs e)
    {
        Form2 objForm2 = new Form2();
     
        // Tu t'abonnes à l'évènement FormClosing de ta form2
        objForm2.FormClosing += new FormClosingEventHandler(objForm2_FormClosing);
     
        // Affichage de form2
        objForm2.ShowDialog(this);
    }
     
    void objForm2_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
    {
        // On arrivera ici une fois que ta form2 sera en train de se fermer
        // A toi d'écrire le code pour raffraichir ta Grid
        throw new NotImplementedException();
    }
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Merci a toi elnfrancois pour m,avoir orienté.

    et un grand merci a cardi pour m'avoir expliquer plus en profondeur.

    Developpez rulez .....

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/04/2010, 14h56
  2. Réponses: 10
    Dernier message: 25/06/2008, 13h54
  3. [REDHAT] Comment mettre à jour glibc
    Par Abdel58 dans le forum RedHat / CentOS / Fedora
    Réponses: 7
    Dernier message: 19/05/2006, 11h30
  4. [VB.NET] Comment mettre à jour Date/Heure de mon PDA ?
    Par zitoun dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 16/05/2006, 14h12
  5. Réponses: 2
    Dernier message: 02/05/2006, 09h50

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