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

Windows Forms Discussion :

[VS2005][C#] Delete sur un Dataset typé


Sujet :

Windows Forms

  1. #1
    Xno
    Xno est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 83
    Points
    83
    Par défaut [Résolu][VS2005][C#] Delete sur un Dataset typé
    Bonjour à tous,

    Etant nouveau venu, c'est donc mon premier post sur ce forum, et j'espère que le titre est au bon format, j'ai pratiquement mis tous les tags dispos...

    Je m'exerce en ce moment sur Visual C# 2005 Express Beta 2 avec la notion de DataSet typé. Pour cela, j'ai crée une nouvelle base dans SQL 2005 Express, ainsi qu'une table d'exemple toute simple nommée Countries.

    J'ai ajouté à mon projet Windows Forms un objet SqlDataAdapter que j'ai nommé daCountries, puis j'ai lancé l'option Configure Data Adapter... pour le configurer, et ensuite j'ai généré un DataSet typé avec l'option Generate DataSet... que j'ai renommé dsCountries.

    Jusque là tout va bien, mais je voulais, pour l'exemple, pouvoir ajouter et supprimer des enregistrements dans cette table. Pour l'ajout, j'ai utilisé une méthode du DataSet typé: dsCountries.Countries.AddCountriesRow(...). Je mets ensuite à jour la base physique ensuite en faisant un daCountries.Update(dsCountries).

    Pour la suppression par contre, je voulais utiliser une méthode que m'avait générée le wizard: dsCountries.Countries.RemoveCountriesRow(...). Le DataSet était bien modifié avec cette méthode, mais pas la base physique après avoir fait un daCountries.Update(dsCountries).

    J'ai été obligé de retrouver un objet dsCountries.CountriesRow et d'exécuter la méthode Delete() existante pour cette classe d'objet.

    Tout est nickel, mais je me demandais pourquoi la méthode générée par le wizard RemoveCountriesRow ne fonctionnait pas... A moins que cette méthode ne serve pas à supprimer un enregistrement, mais comment savoir faute de documentation...?

    Donc ma question est: Est-ce que quelqu'un a déjà eu un pb similaire?


    Merci.

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Salut Xno
    pour la qualité de ton premier post (rarement vu çà ) Tu peux juste virer le Tag[.Net] puisque c'est un forum dédié à celà

    Par contre je n'ai malheureusement pas de réponses précises à t'apporter, mais j'ai crû comprendre que tu n'avais pas de doc.
    donc voici une page de recherche avancées pour la MSDN2 (met la dans tes favoris si tu en as besoin)
    http://www.google.fr/advanced_search?q=+site:http://msdn2.microsoft.com/library/&hl=fr&lr=&as_qdr=all
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Xno
    Xno est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 83
    Points
    83
    Par défaut
    Voilà, c'est fait, j'ai viré le [.NET] du titre du post.

    Merci pour ton lien, neguib, je vais effectivement m'empresser de l'ajouter à mes favoris...

  4. #4
    Xno
    Xno est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 83
    Points
    83
    Par défaut
    Finalement, j'ai réussi à trouver une explication.

    La fonction Remove() générée avec le DataSet typé paraît la méthode intuitive pour supprimer des lignes du dataset pour ensuite mettre à jour la base. Ce n'est pas comme cela que ça fonctionne: Remove() supprime physiquement la ligne sélectionnée du DataSet et, comme cette ligne n'existe plus, la correspondance avec la base de données physique ne peut plus se faire avec l'Update().

    La fonction Delete() sur une Row met un flag Removal sur cette ligne pour signifier qu'au prochain Update(), cette ligne sera supprimée de la base de données physique.

    Bon, fallait le savoir...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/11/2007, 10h03
  2. DataSet typé / Gestion des espaces sur clés
    Par sandre dans le forum Windows Forms
    Réponses: 8
    Dernier message: 17/09/2007, 10h07
  3. [C#][2.0]Problème de Delete avec DataSet Typé
    Par genki dans le forum Accès aux données
    Réponses: 2
    Dernier message: 04/01/2007, 13h42
  4. Réponses: 9
    Dernier message: 09/05/2006, 16h11
  5. [VS2005][VB.NET] Dataset Typé et relations.
    Par Cyrilange dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/04/2006, 18h06

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