none
c# DataGridview RRS feed

  • Question

  • Bonjour a tous

    depuis quelque temps je cherche comment rafraichir les données d'un datagridview apres modification ou ajout et meme supprimer

    pour cela j'utilise 2 form

    un, avec le datagridview qui recoit les données  pour lecture

    un autre, pour les modification (frmEdit) mais une fois les modifs terminée les données

    du datagridview ne s'update pas Comment dois-je proceder


    BigDan
    mardi 17 août 2010 15:27

Réponses

  • Bonjour,

    Normalement, si votre DataGridView est lié à un DataSet, et si vous appliquez les modifications au niveau du DataSet, votre DataGridView sera automatiquement mis à jour.

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Marqué comme réponse DanielMorais jeudi 19 août 2010 13:46
    mercredi 18 août 2010 07:15
    Modérateur
  • Bonjour,

    Le dataset est modifié dans la 2eme form fEdit mais pas dans la form principal et le this.contactsDataSet.Contacts me fait penser que ton DataSet est lié à chaque form qui l'utilise. De fait le DataSet de fEdit est bien mis à jour mais pas celui de mainForm. Si tu veux mettre à jour ton DataGridView il faut d'abord récupérer la modif faite dans fEdit pour l'appliqué au dataSet de mainForm et la ton dataGridView se mettra à jour.

    Cordialement,

    • Marqué comme réponse DanielMorais jeudi 19 août 2010 13:46
    jeudi 19 août 2010 08:52

Toutes les réponses

  • Bonjour,

    Comment chargez-vous votre datagridview ?

    Si c'est avec une datatable , il suffit d'avoir une ligne comme datagridview.DataSource = MaDataTable et la maj du datagridview est automatique

    Bonne journée


    Mark Post as helpful if it provides any help.Otherwise,leave it as it is.
    mardi 17 août 2010 20:37
  • Bonjour Papy Normand

    this

     

    .contactsTableAdapter.Fill(this.contactsDataSet.Contacts);

    c'est utiliser dans les deux forms. mais le datagrid est en readonly

    Le code de la premiere page

    public mainform()
    {
    InitializeComponent();
    }
    private void mainform_Load(object sender, EventArgs e)
    {
    this.contactsTableAdapter.Fill(this.contactsDataSet.Contacts); 
    }
    private void mnuFilesEdit_Click(object sender, EventArgs e)
    { 
    fEdit fe = new fEdit();
    fe.ShowDialog(this); 
    }
    private void mnuFileExit_Click(object sender, EventArgs e)
    {
    this.Close();
    }
    private void mainform_FormClosed(object sender, FormClosedEventArgs e)
    {
    Application.ExitThread();
    Application.Exit(); 
    }
    private void CmenuEdit_Click(object sender, EventArgs e)
    {
    fEdit fe = new fEdit();
    fe.Show(this); 
    }

     

     

    et le code de la deuxieme form

    public fEdit()
    {
    InitializeComponent();
    }
    private void contactsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
    {
    this.Validate();
    this.contactsBindingSource.EndEdit();
    this.tableAdapterManager.UpdateAll(this.contactsDataSet);
    foreach (Control c in this.Controls)
    {
    if (c is TextBox)
    {
    c.Enabled = false;
    }
    }
    }
    private void fEdit_Load(object sender, EventArgs e)
    {
    this.contactsTableAdapter.Fill(this.contactsDataSet.Contacts);
    }
    private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
    { 
    foreach (Control c in this.Controls)
    {
    if (c is TextBox)
    {
    c.Enabled=true;
    }
    }
    }
    private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
    {
    foreach (Control c in this.Controls)
    {
    if (c is TextBox)
    {
    c.Enabled = false;
    }
    } 
    }
    private void fEdit_FormClosing(object sender, FormClosingEventArgs e)
    {
    contactsBindingNavigatorSaveItem_Click(sender,e);
    }
    private void fEdit_FormClosed(object sender, FormClosedEventArgs e)
    {
    this.Dispose(); 
    }

    Ce code est generer par l'ide lors de la connection a la base de données 

     

     

    est-ce que cela vou aides  a comprendre mon probleme

    Merci


    BigDan
    mardi 17 août 2010 20:45
  • Bonjour,

    Normalement, si votre DataGridView est lié à un DataSet, et si vous appliquez les modifications au niveau du DataSet, votre DataGridView sera automatiquement mis à jour.

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Marqué comme réponse DanielMorais jeudi 19 août 2010 13:46
    mercredi 18 août 2010 07:15
    Modérateur
  • Bonjour Gilles

    Oui ca je sait mais ce n'est pas ce qui se produit

    et je suis completement embêter

    Je suis a reguarer si parfois les deux form ne seraient pas en conflit

    ou si j'airais simplement oublie d'ecrire des codes

    Merci


    BigDan
    mercredi 18 août 2010 11:59
  • Bonjour,

    Le dataset est modifié dans la 2eme form fEdit mais pas dans la form principal et le this.contactsDataSet.Contacts me fait penser que ton DataSet est lié à chaque form qui l'utilise. De fait le DataSet de fEdit est bien mis à jour mais pas celui de mainForm. Si tu veux mettre à jour ton DataGridView il faut d'abord récupérer la modif faite dans fEdit pour l'appliqué au dataSet de mainForm et la ton dataGridView se mettra à jour.

    Cordialement,

    • Marqué comme réponse DanielMorais jeudi 19 août 2010 13:46
    jeudi 19 août 2010 08:52
  • Merci pour cette reponse

    j'ai trouver ma solution en ajoutant

    une ligne de commande a celle qui apelle

    le form d'etition des données

    Un lien directe avec ce qui chage mes données dans le dgv

    DATALOAD();  Ce qui force une le premier form a ce recharger

    lorsque le form d'edition se ferme.

     

    Merci beaucoup pour cette aide.


    BigDan
    jeudi 19 août 2010 13:45