none
Problème DataBinding RRS feed

  • Question

  • Bonjour,

    Voici le lien de partage vers skydrive :)

    https://skydrive.live.com/redir?resid=35E9E51337210847%211298

    le souci ce trouve donc dans ma form serveurs, il y aura une groupebox modifier que quand on sélectionne un serveurs dans la datagridview les textbox récupère le nom et prénom du serveur.

    Et le bouton juste en dessous "modifier" j'aimerais qu'il modifie les éléments modifier via les textbox dans la table de donnée.

    Merci d'avance :)

    • Fractionné Aurel Bera mardi 10 décembre 2013 15:39 Separation
    mardi 10 décembre 2013 13:29

Réponses

  •  Continue ce thread:

    http://social.msdn.microsoft.com/Forums/fr-FR/39991690-5936-4388-9b97-1509bd530db6/modification-dune-cellule-dans-une-table-de-donne?forum=visualcsharpfr

    On a fait quelques modifications :

    1. Supprimez les DataBinding dansle concepteur de formes pour TextBoxe1 et TextBox2  et ajoutez TextBox5 avec ReadOnly= true.   Sera utile pour enregistrer le Id a modifier.

    2. Ajoutez laListe comme en bas:
     public partial class Serveurs : Form
        {

            List<table_Serveurs> laListe;
            public Serveurs()
            {
                InitializeComponent();
            }
    ...........................

    3. Refaire le DataBinding:
        private void Serveurs_Load(object sender, EventArgs e)
            {
                // TODO: cette ligne de code charge les données dans la table '_DigitalRestaurant_Serveurs_DBserveursDataSet.table_Serveurs'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
              //  this.table_ServeursTableAdapter.Fill(this._DigitalRestaurant_Serveurs_DBserveursDataSet.table_Serveurs);
                   using (var db = new DBserveurs())
                    {

                          laListe = (from p in db.Serveur
                                       select p).ToList();
                          dataGridView1.DataSource = laListe;
                          textBox1.DataBindings.Add(new Binding("Text", laListe, "Noms"));

                          textBox2.DataBindings.Add(new Binding("Text", laListe, "Prenoms"));

                          textBox5.DataBindings.Add(new Binding("Text", laListe, "Id"));

                    }
             
                       
            }


    4.  Modifiez et enregistrez  :
            private void button4_Click_1(object sender, EventArgs e)
            {
                DialogResult result;
             
                result = MessageBox.Show("Voulez-vous vraiment modifier ce serveur?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    using (var dbd = new DBserveurs())
                    {
                        var nom = textBox1.Text;
                        var prenom = textBox2.Text;
                      
     
                        int aux = Int32.Parse(textBox5.Text) ;

                        var serveur = (from supri in dbd.Serveur where supri.Id == aux select supri).Single();
                        serveur.Noms = nom;
                        serveur.Prenoms = prenom;
                        dbd.SaveChanges();

                        dataGridView1.Refresh();
                       
                    }
                }
            }

     


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.



    • Modifié Aurel Bera mardi 10 décembre 2013 15:42
    • Marqué comme réponse Aurel Bera jeudi 19 décembre 2013 13:49
    mardi 10 décembre 2013 15:36
  • Re Bonjour

    Dans les propriétés du DataGridView selectez pour SelectionMode = FullRowSelect.
    Vérifies que les groupbox1, groupbox2 et  groupbox3 sont directement dans la forme et pas un dans l'autre. 
    Aussi n'oubliez de cacher les GroupBox après l’opération c'est finie.
    Apres veuillez modifier les fonctions pour Ajout/suppression comme en bas :

    //Ajouter un serveur private void button5_Click(object sender, EventArgs e) { groupBox1.Visible = true; if (textBox4.Text == "" && textBox3.Text == "") { MessageBox.Show("Remplissez tous les champs !"); } else { using (var db = new DBserveurs()) { var nom = textBox4.Text; var prenom = textBox3.Text; var UnServeur = new table_Serveurs { Noms = nom, Prenoms = prenom }; db.Serveur.Add(UnServeur); db.SaveChanges(); laListe = (from p in db.Serveur select p).ToList(); dataGridView1.DataSource = laListe; } // rafraichissement de la base de donnée et de la datagridview1 // this.table_ServeursTableAdapter.Fill(this._DigitalRestaurant_Serveurs_DBserveursDataSet.table_Serveurs); dataGridView1.Refresh(); } } // supprimer un serveur private void button6_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 0) return; DialogResult result; result = MessageBox.Show("Voulez-vous vraiment supprimer ce serveur?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { using (var dbd = new DBserveurs()) { table_Serveurs drv = (table_Serveurs)dataGridView1.SelectedRows[0].DataBoundItem; int aux = drv.Id; var serveur = (from supri in dbd.Serveur where supri.Id == aux select supri).Single(); dbd.Serveur.Remove(serveur); dbd.SaveChanges(); } // rafraichissement de la base de donnée et de la datagridview1 // this.table_ServeursTableAdapter.Fill(this._DigitalRestaurant_Serveurs_DBserveursDataSet.table_Serveurs); dataGridView1.Refresh();

    } }


    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    • Marqué comme réponse Aurel Bera jeudi 19 décembre 2013 13:49
    lundi 16 décembre 2013 08:21

Toutes les réponses

  •  Continue ce thread:

    http://social.msdn.microsoft.com/Forums/fr-FR/39991690-5936-4388-9b97-1509bd530db6/modification-dune-cellule-dans-une-table-de-donne?forum=visualcsharpfr

    On a fait quelques modifications :

    1. Supprimez les DataBinding dansle concepteur de formes pour TextBoxe1 et TextBox2  et ajoutez TextBox5 avec ReadOnly= true.   Sera utile pour enregistrer le Id a modifier.

    2. Ajoutez laListe comme en bas:
     public partial class Serveurs : Form
        {

            List<table_Serveurs> laListe;
            public Serveurs()
            {
                InitializeComponent();
            }
    ...........................

    3. Refaire le DataBinding:
        private void Serveurs_Load(object sender, EventArgs e)
            {
                // TODO: cette ligne de code charge les données dans la table '_DigitalRestaurant_Serveurs_DBserveursDataSet.table_Serveurs'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
              //  this.table_ServeursTableAdapter.Fill(this._DigitalRestaurant_Serveurs_DBserveursDataSet.table_Serveurs);
                   using (var db = new DBserveurs())
                    {

                          laListe = (from p in db.Serveur
                                       select p).ToList();
                          dataGridView1.DataSource = laListe;
                          textBox1.DataBindings.Add(new Binding("Text", laListe, "Noms"));

                          textBox2.DataBindings.Add(new Binding("Text", laListe, "Prenoms"));

                          textBox5.DataBindings.Add(new Binding("Text", laListe, "Id"));

                    }
             
                       
            }


    4.  Modifiez et enregistrez  :
            private void button4_Click_1(object sender, EventArgs e)
            {
                DialogResult result;
             
                result = MessageBox.Show("Voulez-vous vraiment modifier ce serveur?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    using (var dbd = new DBserveurs())
                    {
                        var nom = textBox1.Text;
                        var prenom = textBox2.Text;
                      
     
                        int aux = Int32.Parse(textBox5.Text) ;

                        var serveur = (from supri in dbd.Serveur where supri.Id == aux select supri).Single();
                        serveur.Noms = nom;
                        serveur.Prenoms = prenom;
                        dbd.SaveChanges();

                        dataGridView1.Refresh();
                       
                    }
                }
            }

     


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.



    • Modifié Aurel Bera mardi 10 décembre 2013 15:42
    • Marqué comme réponse Aurel Bera jeudi 19 décembre 2013 13:49
    mardi 10 décembre 2013 15:36
  • Bonjour

    Avez-vous des nouvelles pour nous?

    Merci!

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 12 décembre 2013 14:05
  • Oui je viens justement de le faire et tout fonctionne parfaitement bien :)

    Un grand merci :) et la modification est très rapide contrairement à ma première requete pour ajouter un élément en plus

    jeudi 12 décembre 2013 15:23
  • par contre j'ai quelque probleme au niveau de l'ajout et la modification maintenant.
    JE ne comprends pas tout fonctionnait avant
    jeudi 12 décembre 2013 15:43
  • Bonjour

    Quel est le comportement?

    Il y a un message d'erreur?
    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    • Modifié Aurel Bera vendredi 13 décembre 2013 05:47
    vendredi 13 décembre 2013 05:47
  • Quand j'ajoute un serveur il ne ce passe plus rien " rafraichissement, alors que je ne t'ai pas touché à ça " et l'autre souci quand je supprimais tout fonctionnais et la il plante.

    Mais la modification fonctionne très bien

    lundi 16 décembre 2013 07:27
  • Re Bonjour

    Dans les propriétés du DataGridView selectez pour SelectionMode = FullRowSelect.
    Vérifies que les groupbox1, groupbox2 et  groupbox3 sont directement dans la forme et pas un dans l'autre. 
    Aussi n'oubliez de cacher les GroupBox après l’opération c'est finie.
    Apres veuillez modifier les fonctions pour Ajout/suppression comme en bas :

    //Ajouter un serveur private void button5_Click(object sender, EventArgs e) { groupBox1.Visible = true; if (textBox4.Text == "" && textBox3.Text == "") { MessageBox.Show("Remplissez tous les champs !"); } else { using (var db = new DBserveurs()) { var nom = textBox4.Text; var prenom = textBox3.Text; var UnServeur = new table_Serveurs { Noms = nom, Prenoms = prenom }; db.Serveur.Add(UnServeur); db.SaveChanges(); laListe = (from p in db.Serveur select p).ToList(); dataGridView1.DataSource = laListe; } // rafraichissement de la base de donnée et de la datagridview1 // this.table_ServeursTableAdapter.Fill(this._DigitalRestaurant_Serveurs_DBserveursDataSet.table_Serveurs); dataGridView1.Refresh(); } } // supprimer un serveur private void button6_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 0) return; DialogResult result; result = MessageBox.Show("Voulez-vous vraiment supprimer ce serveur?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { using (var dbd = new DBserveurs()) { table_Serveurs drv = (table_Serveurs)dataGridView1.SelectedRows[0].DataBoundItem; int aux = drv.Id; var serveur = (from supri in dbd.Serveur where supri.Id == aux select supri).Single(); dbd.Serveur.Remove(serveur); dbd.SaveChanges(); } // rafraichissement de la base de donnée et de la datagridview1 // this.table_ServeursTableAdapter.Fill(this._DigitalRestaurant_Serveurs_DBserveursDataSet.table_Serveurs); dataGridView1.Refresh();

    } }


    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    • Marqué comme réponse Aurel Bera jeudi 19 décembre 2013 13:49
    lundi 16 décembre 2013 08:21
  • Bonjour

    Un petit retour SVP?

    Merci!

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 17 décembre 2013 07:21