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

VB.NET Discussion :

Comment mettre à jour une base de données access


Sujet :

VB.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut Comment mettre à jour une base de données access
    Bonjour, je tatonne sur VB.NET, j'ai une liaison avec une base de données access, et j'affiches les infos de la table à travers des textboxs sur ma form. VB m'a généré automatiquement un BindingNavigator dans lequel se trouve une icone d'enregistrement. Je fais le test, je modifie une des valeurs, et quand je clique sur enregistrer, j'ai une erreur à ce niveau là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Private Sub TESTBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TESTBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.TESTBindingSource.EndEdit()
            Me.TESTTableAdapter.Update(Me.Base_de_données1DataSet.TEST)
    
        End Sub
    et ça me dit : "Update requiert un UpdateCommand valide lors du passage de la collection DataRow avec des lignes modifiées". Est-ce que quelqu'un pourrait m'expliquer ce que cela signifie ? Merci d'avance.

  2. #2
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Il doit te manquer un commandbuilder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Private cb As OleDbCommandBuilder
    cb = New OleDbCommandBuilder(tonAdaptateur)
    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Salut, merci pour la réponse ... mais ôte moi un doute !! Tu dis qu'il doit me manquer un commandbuilder. En fait pour pouvoir enregistrer dans la base access, c'est pas automatique c'est ça ? Il faut que je tape un code derrière l'icone d'enregistrement ? Je croyais que c'était fait lors de la mise en place de l'interface moi ...

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    à priori les bindings servent en effet à de pas faire de code SQL
    mais je n'en ai pas encore utilisé donc je peux pas trop t'aider
    en revanche des topics avec des bindings ca passe souvent par ici, donc fait une petite recherche, y doit y avoir la ligne de code qu'il te manque pour mettre à jour
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Aie ! Comme Sperot51, je suis plutôt adepte de gérer tout ça par code plutôt que via l'IDE ...

    Mais bon, je viens de tester ça en positionnant simplement un dataset sur une form --> donc j'ai le datagridview et le bindingNavigator.

    Les commandes insert, select, update et delete sont dans ce cas directement gérées via l'objet dataset.

    Seulement, faut que tu ais un clé primaire sur ta table !!!!

    Sinon, tu as l'erreur que tu sites --> j'ai eu la même !

    Pour résoudre, par contre, j'ai du regéner le dataset (le supprimer et le recréer, ce qui d'ailleurs m'a violemment planté VS )

    Donc --> une clé primaire dans la table.

    Nota : personnellement, quand je vois le code généré dans l'objet dataset, je me dis que pour faire une malheureuse mise à jour de 2 colonnes, plus 1000 lignes ça fait beaucoup !

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Pb de mise à jour
    Bonjour à tous,

    voilà j'ai beau essayer de chercher à comprendre, je ne trouve pas.

    j'ai une page qui me liste mes enregistrements.
    Je clique pour modifier, cela m'emmène une page modif.asp qui me récupère par les QueryString les valeurs de mon enregistrement.
    je met à jour les champs qu'il faut et je clique sur "mettre à jour".

    Lorsque je retourne à ma liste, il m'a mis à jour correctement, mais le problème c'est qu'il me me à jour systématiquement le 1er enregistrement de ma base...

    matériel / config : ASP, base access 2003, Dreamweaver 8

    Avez-vous des idées ?
    merci bcp d'avance

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    salut ! Effectivement ça plantait parce que je n'avais pas de clé primaire. J'ai réessayé en en mettant une et ça fonctionne. Génial merci. Par contre, étant donné que le clé primaire ne peut être nulle, ça fonctionne si je modifie une ligne déjà existante ... mais comment faire si je veux rajouter carrement une nouvelle ligne ? Il faut que je récupère la liste de clé et que j'incrémente de un ? Merci

  8. #8
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Si ta clé primaire est un bête index incrémenté, tu peux le paramétrer dans ta base de données pour qu'il soit automatiquement incrémenté, cela devrait résoudre ton problème.

    EDIT : sperot51 -> Preumz
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ton champs de clé primaire, défini le en autoincrémentant
    comme ca sans le préciser dans la requete d'ajout, ca devrait se débrouiller à mettre +1
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    merci à tous les 2 les gars, ça fonctionne !!

  11. #11
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Pense au résolu... en plus je suis triste, parce qu'on était 3 et je croyais t'avoir aidé un peu ... (je suis dans ma phase Calimero !).

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    salut, effectivement tu peux être triste car c'est vrai que tu m'as aidé, étant donné que j'ai regénéré la grid et ajouté une clé primaire !! Autant pour moi, merci à toi également ...

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

Discussions similaires

  1. [AC-2007] mettre à jour une base de données access 2007
    Par fabson dans le forum VBA Access
    Réponses: 12
    Dernier message: 16/03/2012, 17h54
  2. [IP-2003] mettre a jour une base de données access 2003
    Par EFFLYINGJOKER dans le forum InfoPath
    Réponses: 1
    Dernier message: 27/11/2009, 22h40
  3. Réponses: 2
    Dernier message: 27/04/2007, 13h45
  4. Réponses: 1
    Dernier message: 15/09/2006, 11h24
  5. [SQL SERVER] Mettre à jour une base de donnée
    Par grellierj dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/05/2006, 11h33

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