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

ASP.NET Discussion :

[ADO.NET] Comment répercuter les changements d'un dataset en base?


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut [ADO.NET] Comment répercuter les changements d'un dataset en base?
    Bonjour,
    Je travaille sur des bases de données, et je voudrais le pendant de la méthode Dataset.Fill qui permettrait de répercuter en base les changement faits sur un dataset. A ce jour je définis un UpdateCommand, avec des paramètres... L'idée est lorsque l'on fait une modification mineure sur un dataset (par exemple une suppression de ligne) de ne pas avoir à utiliser tout ca. Est-ce possible?

    Je croyais que la méthode AcceptChange() avait ce rôle, mais ce n'est pas ca.

    Merci de vos réponses.

    Cordialement,

    Nixar

  2. #2
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut
    Bonjour,
    Après plusieurs recherches, notamment sur msdn, voici ce que j'ai trouvé. J'ai tenté de le faire, mais j'ai une erreur

    Update requiert un DeleteCommand valide lors du passage de la collection DataRow avec des lignes supprimées.
    La procédure (lien):
    1.
    générer et remplir chaque DataTable de DataSet avec des données provenant d'une source de données à l'aide de DataAdapter .
    Après connexion à la base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SqlDataAdapter oSqlDataAdapter = new SqlDataAdapter("SELECT * FROM AdressesNewsletter", Connexion);
            DataSet oDataSet = new DataSet("DataSetMail");
            DataSet Modifs = new DataSet();
            oSqlDataAdapter.Fill(oDataSet, "AdressesNewsletter"
    );

    2.
    modifier les données dans les objets DataTable en ajoutant, mettant à jour ou supprimant des objets DataRow ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    oDataSet.Tables["AdressesNewsletter"].Rows[2].Delete();
                    SuppressionAdresse.Visible = true;
    3.
    appeler la méthode GetChanges pour créer un deuxième DataSet qui représente uniquement les modifications apportées aux données ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Modifs = oDataSet.GetChanges();
                oSqlDataAdapter.TableMappings.Add("Table", "AdressesNewsletter");// J'ai ajouté cette ligne de mapping car j'avais une erreur de compilation liée
    4.
    appeler la méthode Update de DataAdapter, en passant le deuxième DataSet comme argument.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                oSqlDataAdapter.Update(Modifs);
    La j'ai l'erreur : Update requiert un DeleteCommand valide lors du passage de la collection DataRow avec des lignes supprimées.
    Pourquoi ? Il me semble qu'il a tout ce qu'il lui faut...
    5.
    Appelez la méthode Merge pour fusionner les modifications du deuxième DataSet dans le premier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                oDataSet.Merge(Modifs);

    6.
    Appelez AcceptChanges sur DataSet. Vous pouvez également appeler RejectChanges pour annuler les modifications.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                oDataSet.AcceptChanges();
    Merci de votre aide !!!

Discussions similaires

  1. [ADO.NET][IDbDataAdapter] Comment nommer les tables dans un dataset ?
    Par davcha dans le forum Accès aux données
    Réponses: 11
    Dernier message: 11/05/2006, 17h42
  2. Réponses: 5
    Dernier message: 27/04/2005, 16h49
  3. Réponses: 4
    Dernier message: 24/03/2005, 19h20
  4. [ADO.NET] Comment rendre une certaine colonne "AutoIncrement" ?
    Par maitrebn dans le forum Accès aux données
    Réponses: 3
    Dernier message: 23/03/2005, 22h12
  5. [VB.NET] Comment lister les ordinateurs d'un réseau
    Par Jan-t dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/03/2005, 08h44

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