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

Accès aux données Discussion :

[C#] Comment supprimer un enregistrement de la table ?


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut [C#] Comment supprimer un enregistrement de la table ?
    Salut,
    j'ai essayé de supprimer une ligne de la table. dans un premier temps, j'ai ecris la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    myDataSet.Tables["personne"].Rows[this.BindingContext
    [myDataSet.Tables["personne"]].Position].Delete();

    mais la suppression affecte que le Dataset et non pas la base de données.
    j'ai rajouté après un Update :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       mySqlAdapter.Update(myDataSet, "personne");
                // Rechargement des données de la source mise à jour
                myDataSet.Clear();
                mySqlAdapter.Fill(myDataSet, "personne");
    alors au moment de l'execution, il me donne l'erreur suivante :
    Update requiert un DeleteCommand valide lors du passage de la collection DataRow avec des lignes supprimées.
    Je suis bloqué, je sais pas quoi faire. Merci

  2. #2
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Bonjour,

    Cela doit etre du à une légère confusion de ta part dans l'utilisation du DataAdapter. Un DataAdapter est capable d'Updater une base de données depuis un dataSet mais pour cela, il se repose sur 4 Commandes
    • -InsertCommand
    • -DeleteCommand
    • -UpdateCommand
    • -SelectCommand

    Il faut donc que la commande de Delete soit spécifiée. Vérifie donc que dans ton dataAdapter, les 4 commandes sont correctement remplies et ensuite cela devrait fonctionner

    Regarde par là : ADO.Net

  3. #3
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    En fait j'ai déja mis DeleteCommand, je te donne mon code complet de suppression pour voir :

    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
     
            private void btnSupprimer_Click(object sender, EventArgs e)
            {
                // Remplissage de la commande InsetCommand
                mySqlAdapter.DeleteCommand = new SqlCommand("delete from
     personne where id =@id)", myConnection);
     
     
                SqlParameter param1;
                param1 = new SqlParameter();
                param1.ParameterName = "@id";
                param1.DbType = DbType.Int32;
                param1.Value = int.Parse(txtId.Text);
     
     
                mySqlAdapter.DeleteCommand.Parameters.Add(param1);
     
     
                myDataSet.Tables["personne"].Rows[this.BindingContext
    [myDataSet.Tables["personne"]].Position].Delete();
                mySqlAdapter.Update(myDataSet, "personne");
                myDataSet.Clear();
                mySqlAdapter.Fill(myDataSet,"personne");
     
     
            }
    .

    maintenant j'ai une autre erreur d'execution :
    Ligne 1 : syntaxe incorrecte vers ')'.

    et pointe sur la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      mySqlAdapter.Update(myDataSet, "personne");
    J'ai deja vu le lien vers ADO. je m'en suis servi pour faire insertion. Merci.
    Mais la au niveau de la suppresion je suis bloqué.

  4. #4
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par paradeofphp
    maintenant j'ai une autre erreur d'execution :
    Ligne 1 : syntaxe incorrecte vers ')'.
    Ben voui mais l'erreur viens bien d'ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mySqlAdapter.DeleteCommand = new SqlCommand("delete from
     personne where id =@id)", myConnection);
    Enlève cette parenthèse intruse

  5. #5
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Oh la bien joué! Je l'ai relu au moins 10 fois sans le voir

  6. #6
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par cladsam
    Oh la bien joué! Je l'ai relu au moins 10 fois sans le voir
    çà nous arrive à tous et régulièrement , du moment où l'exception me le dit clairement alors c'est elle que je crois et pas mes yeux

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2011, 11h40
  2. Comment supprimer des enregistrements dans deux tables ?
    Par Daniela dans le forum VBA Access
    Réponses: 15
    Dernier message: 18/06/2009, 17h51
  3. Supprimer un enregistrement dans 2 tables
    Par funny_surf dans le forum Access
    Réponses: 1
    Dernier message: 27/12/2005, 10h41
  4. Réponses: 17
    Dernier message: 18/03/2005, 15h56
  5. HELP!Comment supprimer des enregistrements de tables jointes
    Par ROOTPARIS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/06/2004, 16h41

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