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?


Sujet :

Accès aux données

  1. #1
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut [C#] Comment supprimer un enregistrement?
    Bonjour à tous,

    Question évidente et qui parait simple: comment supprimer un enregistrement de ma base de donnée?

    Voici l'état des lieux:
    - J'ai une table Client dans un dataset typé, j'ai un dataAdapter que j'utilise pour remplir et mettre à jour la DB.
    - Le dataAdapter a été configuré comme suit:
    J'ai spécifié la requete SQL pour le SELECT et lui m'a généré les requetes SQL pour le DELETE, UPDATE et INSERT. Tout me parait juste.
    - L'ajout et la modification se fait sans problème. Il n'y a que lorsque je supprime une ligne dans ma table puis que je fais un update dan mon dataAdapter que ca foire (ca ne modifie rien).

    Voici comment je m'y prend:
    - d'abord je remplis la table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DA_Client.Fill(dsClient);
    A ce moment là, la table est remplie correctement
    - ensuite je modifie la table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DS_Client.ClientRow rwClient = dsClient.Client.FindClientByID(iIDClient);
    dsClient.RemoveClientRow(rwClient);
    Ici rwClient représente bien la ligne qui m'intéresse et apres le remove elle ne figure effectivement plus dans la table
    - enfin je répercute dans la DB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DA_Client.Update(dsClient);
    Malheureusement la base de donnée ne subit aucune modification suite à cette opération. (Dans le cas d'un Insert ou d'un Update ca va sans probleme)

    Voila. Toute aide est la bienvenue.

  2. #2
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,
    Effectivement, c'est pas normal un update te réussit et pas un delete, y'aurait il pas une dépendance entre ta table Clients et une autre table dans ta base??Essaies vite fait avec une Command pour voir qu'elle en serait le résultat:

    Code ://...
    OleDb.Command cmd=new OleDb.Command("",taconnection);
    DS_Client.ClientRow rwClient = dsClient.Client.FindClientByID(iIDClient);
    cmd.commadtext="delete from clients where CleClient=" & rwclient("Cleclient");
    cmd.executenonquery();
    //...
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

  3. #3
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    ca fonctionne sans aucun probleme.

    Le mode connecté fonctionne c'est déjà une bonne chose. Mais bon ici il serait plus pratique pour moi d'y arriver en mode déco.

  4. #4
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,
    Avec une commande t'arrive à supprimer sans problème, au moins ça diminue les probabilités, une autre tentative:

    Code:
    DS_Client.ClientRow rwClient = dsClient.Client.FindClientByID(iIDClient);
    dsClient.RemoveClientRow(rwClient);
    MessageBox.Show(rwClient.RowState.ToString());
    DA_Client.Update(dsClient);
    Normalement, tu doit voir "...Deleted" dans le messagebox, sinon c'est le dsClient.RemoveClientRow(rwClient); qui cloche.
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/12/2006, 20h31
  2. [ADO.NET][SQL SERVER] Comment supprimer des enregistrements?
    Par julien37510 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 01/12/2006, 12h00
  3. [C#] Comment supprimer un enregistrement de la table ?
    Par paradeofphp dans le forum Accès aux données
    Réponses: 12
    Dernier message: 03/08/2006, 09h59
  4. Réponses: 1
    Dernier message: 28/01/2006, 12h36
  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