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 :

C# Problème pour suppression


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut C# Problème pour suppression
    Bonjour à tous,
    Lorsque je veux supprimer un service et qu'il y a un employé, il ne supprime pas le bon employé, il supprime le premier employé qui est dans la base de données. La table service est liée à employé par un numéro, dans mon code, j'ai fait un dataset, la base de données est sous SQL server 2005. Voir copie d'écran du formulaire.
    Voici le code pour la supression :
    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 bt_supprime_serv_Click(object sender, EventArgs e)
            {
                try
                {
                    if (MessageBox.Show("Voulez vous faire la modification?", "Message de confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        this.BindingContext[dbDs, dbDs.tp1_employe.TableName].RemoveAt(this.BindingContext[dbDs, "tp1_service.ServiceEmploye"].Position);
                        this.BindingContext[dbDs, dbDs.tp1_service.TableName].RemoveAt(this.BindingContext[dbDs, dbDs.tp1_service.TableName].Position);
                        fillData();
                    }
                }
                catch (System.Exception pb)
                {
                    MessageBox.Show(pb.Message);
                }
            }
    Voici le code de fillData()
    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
     
    private void fillData()
            {
                string total = (this.BindingContext[dbDs, "tp1_service.serviceemploye"].Count).ToString();
                string num = ((this.BindingContext[dbDs, "tp1_service.serviceemploye"].Position) + 1).ToString();
                tb_posCpt_emp.Text = num + "/" + total;
     
                total = (this.BindingContext[dbDs, dbDs.tp1_service.TableName].Count).ToString();
                num = ((this.BindingContext[dbDs, dbDs.tp1_service.TableName].Position) + 1).ToString();
                tb_posCpt_serv.Text = num + "/" + total;
     
                activeService = this.BindingContext[dbDs, dbDs.tp1_employe.TableName].Current as DataRowView;
                DataRowView rowView = this.BindingContext[dbDs, "tp1_service.serviceemploye"].Current as DataRowView;
                if ((bool)rowView.Row["sexe"] == true)
                    this.rb_masculin.Checked = true;
                else
                    this.rb_feminin.Checked = true;
            }
    Voici le code de supression:
    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
    32
     
    private void tp1_service_RowDeleted(object sender, DataRowChangeEventArgs e)
            {
                if (e.Action == DataRowAction.Delete)
                {
                    try
                    {
                        dbAd_service.Update(new DataRow[] { e.Row });
                    }
                    catch (Exception pb)
                    {
                        MessageBox.Show(pb.ToString());
                        e.Row.RejectChanges();
                    }
                }
            }
     
    private void tp1_employe_RowDeleted(object sender, DataRowChangeEventArgs e)
            {
                if (e.Action == DataRowAction.Delete)
                {
                    try
                    {
                        dbAd_employe.Update(new DataRow[] { e.Row });
                    }
                    catch (Exception pb)
                    {
                        MessageBox.Show(pb.ToString());
                        e.Row.RejectChanges();
                    }
                }
            }
    Merci à vous
    Images attachées Images attachées  

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Supposant que lorsque tu supprimes un service tous les employés doivent disparaître, il suffit dans le source C# de supprimer le service et, grâce à la contrainte "en cascade" définie dans la base de donnée, tous les employés du service seront supprimés.

    Vérifie les contraintes sur les 2 tables.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    Merci, cela règle mon problème pour plusieurs employé dans le même service, mais par exemple, si je supprime l'employé qui est dans le service 8, il m'efface l'employé du service 7 et l'employé du service 8 et supprime le service 8, ce qui ne va pas. Le numéro 7 étant le dans le premier enregistrement de employé dans la base de données

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Regarde dans ton code en debug si tu ne fais pas un remove du service quand tu supprimes un employé.

    Sinon, c'est un problème de description de relations dans le SGBD.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    Désolé je me suis mal expliqué, c'est lorsque je supprime le service 8, dans la base de données le service 8 est supprimé, ainsi que l'employé du service 8. Mais si un employé du service 7 est en première ligne dans la base, il est supprimé aussi.

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.BindingContext[dbDs, dbDs.tp1_employe.TableName].RemoveAt(
      this.BindingContext[dbDs, "tp1_service.ServiceEmploye"].Position);
    Quel est le but de cette instruction quand on supprime un service ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/08/2012, 13h56
  2. [MySQL] problème pour fonction de suppression par rapport aux valeurs associées
    Par karasnake dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2008, 17h50
  3. Problème pour annuler la suppression d'une ligne
    Par KrusK dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 23/05/2008, 12h00
  4. Problème requête pour suppression
    Par sick35 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/05/2008, 15h42
  5. Problème pour récupérer la clé primaire
    Par caramel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2003, 13h57

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