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 :

Mettre à jour la base de données depuis dataGridView [Débutant]


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Points : 29
    Points
    29
    Par défaut Mettre à jour la base de données depuis dataGridView
    Bonjour,

    J'essaye depuis quelques heures de mettre à jour les modification apportées à un DataGridView vers la base de données, mais je crois que j'y vois pas clair après tout,

    voici le code de ma fonction finale qui marche pas biensur, que j'ai testé!

    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
            void UpdateData()
            {
                // ouvrir la connection
                try
                {
                    this.connection = new SqlCeConnection(
                    Properties.Settings.Default.UserDataConnectionString);
                    this.connection.Open();
                    // apporter les changements du datatable
                    DataTable changedDatatable = this.datatable.GetChanges() ;
                    if(changedDatatable != null)
                        this.adapter.Update(changedDatatable) ;
                }
                finally
                {
                    connection.Close();
                }
            }
    J'obtiens seulement l'exception InvalidOperationException sur la methode Update.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Précise les détails de l'erreur (Message, InnerException, StackTrace...)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    La ligne 12 génère l'exeption suivante:
    System.InvalideOperationException: Update requiert un InsertCommand valide lors du passage de la collection DataRow avec de nouvelles lignes

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Comment as-tu créé adapter ? Apparemment il ne définit que la commande Select, pas les Insert/Update/Delete...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    J'ai résolu le problème en créant un commandBuilder pour adapter, j'ai ajouté cette ligne au début de la methode UpdateData().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCeCommandBuilder cmdBuilder = new SqlCeCommandBuilder(adapter)
    Mon adapter était:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCeDataAdapter adapter = new SqlCeDataAdapter("SELECT * FROM Users", maConnection)
    Merci.

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

Discussions similaires

  1. mettre à jour une base de données depuis XML
    Par biks9 dans le forum Débuter
    Réponses: 3
    Dernier message: 20/03/2012, 02h01
  2. Réponses: 2
    Dernier message: 26/03/2010, 20h07
  3. Mettre à jour ma base de données depuis un DataGridview
    Par The-msx dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/07/2009, 10h52
  4. Réponses: 1
    Dernier message: 05/04/2008, 11h28
  5. Réponses: 1
    Dernier message: 15/09/2006, 11h24

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