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 :

Mise à jour base des données modifiées dans le DataGridView


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut Mise à jour base des données modifiées dans le DataGridView
    Bonjour,

    Je souhaite modifier les données dans le Data grid view d'un formulaire et mettre à jour ma base de données. (Pour cela je me suis appuyé sur un tutorial d'Accès aux données de MSDN mais ça ne fonctionne pas et je ne sais pas corriger le problème -et bien sure je débute en VB!)

    Voilà le code du bouton de mon formulaire qui est censé enregistrer les modifications:

    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
    Private Sub btnEnregistrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnregistrer.Click
    
    ' Récupérer les données modifiées à partir du DataContainer
    Dim dtArticlesModifies As DataTable = CType(dgvArticles.DataSource, BIJOUDataSet.F_ARTICLEDataTable).GetChanges()
    
    If dtArticlesModifies IsNot Nothing Then
       ' Fusionner les lignes modifiées dans notre liste de contact
       MesArticles.ListArticles.Merge(dtArticlesModifies)
       ' Sauvegarde des modifications apportées
       MesArticles.SaveData()
       ' Valider les données locales enregistrés en DB
       MesArticles.ListArticles.AcceptChanges()
    
    End If
    End Sub
    Mais j'ai cette erreur qui pointe sur la ligne précédente en rouge :
    Impossible d'effectuer un cast d'un objet de type 'System.Windows.Forms.BindingSource' en type 'F_ARTICLEDataTable'.

    Si quelqu'un a une idée sur la façon de corriger cette erreur ça m'aiderai beaucoup

    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Salut,

    Essai avec ça, biensur en changeant les tableadapter, bindingsource et le dataset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     'Update vers la BDD
                Try
                    Me.Validate()
                    Me.ActivitesBindingSource.EndEdit()
                    Me.ActivitesTableAdapter.Update(Me.GpiDataSet.activites)
                Catch ex As Exception
                    MsgBox("Update failed")
                End Try

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Comme l'a souligné Manzione, il faut faire un Update du dataadapter sur ton dataset.
    C'est a dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    da.Update(ds, "NomDataset")
    Cdt.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Merci pour vos réponses,

    j'ai essayé avec le code de manzione_vb, ça a l'air de marcher, sauf que maintenant j'ai une erreur sql ("Index modifié !" alors que ma modification ne porte pas sur un champ d'un index mais bon...), mais ça ça doit être un autre problème...

    Sinon Igmar, j'ai bien une ligne qui ressemble à ce que tu me donne dans ma classe ArticleStoreSQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Public Overrides Sub SaveData()
            Dim daArticles As New BIJOUDataSetTableAdapters.F_ARTICLETableAdapter
            daArticles.Update(Me.ListArticles)
        End Sub
    je sais pas si c'est de ça que tu parles...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Oui oui c'est ca.
    Pour ton erreur SQL, je vois pas la comme ca.
    Bon courage.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    j'ai donc utlisé le code suivant pour la mise à jour de ma base de données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Update vers la BDD
            Try
            Me.Validate()
            Me.FARTICLEBindingSource.EndEdit()
            Me.F_ARTICLETableAdapter.Update(Me.BIJOUDataSet.F_ARTICLE)
            Catch ex As Exception
                MsgBox("La mise à jour a échoué")
            End Try
    le problème c'est que je me retrouve face à une exception Sql que je n'arrive pas à résoudre
    Voilà quelques détails de l'exception :

    Message: "Index modifié !"
    Item: Pour évaluer une propriété indexée, cette dernière doit être qualifiée et l'utilisateur doit fournir les arguments de manière explicite.
    Number: 80011

    Si quelqu'un a une idée...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Comment importes-tu tes données dans ton applications???tu utilise les requêtes dans ton code???ou tu utilise l'assistant de VS 2005 pour importer dans un dataset???


    Si tu utilise le Visual Studio 2005 je pourrai t'aider, mais par le code je ne connai pas les fonctions à utiliser...

    La pièce jointe est un exemple de dataset, et ce qui est en rouge est ou se situe les requête SQL dans VS2005
    Images attachées Images attachées  

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    J'utilise l'assistant de VS 2005 pour importer les données dans le DataSet

    mais je sais pas quoi t'indiquer de plus pour t'aider à comprendre mon problème..

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Bon ben j'ai trouvé d'où venait cette erreur: tout simplement la commande update générée automatiquement par VS faisait un update sur tous les champs alors que mon datagridview n'a pour but que de modifier les valeurs d'une colonne; donc j'ai enlevé les autres champ du SET de l'update (qui eux faisaient parti d'index, d'où l'erreur "Index modifié !" -même si je ne touchait pas à la valeur de ces champs... )

    Enfin bref, merci à ceux qui m'ont aidé

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    De rien !
    Pense au Tag

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

Discussions similaires

  1. Trigger mise a jour base des données
    Par alizerhouni dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 12/07/2010, 10h08
  2. [MySQL] Variable PHP dans formulaire avec mise à jour base de données
    Par flingue dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/11/2009, 07h54
  3. [DeskI V5-V6] Mise à jour auto des données dans la colonne variation
    Par lenka33 dans le forum Débuter
    Réponses: 17
    Dernier message: 31/08/2009, 12h09
  4. [CR11] mise à jour source de donnée modifiée
    Par KrusK dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 16/08/2005, 14h36
  5. [SQL server][TDbRichEdit] Mise à jours base de donnée
    Par Revan012 dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/06/2004, 12h12

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