none
impossible d'enregistrer les données dans la base RRS feed

  • Question

  • bonjour

    Malgré avoir parcouru les reponses du forum a propos d'enregistrement dans la base de donnée,
    je ne parvient pas a mettre a jour ma bdd
    j'utilise l'éxemple DataWalkTrough de VB et le suis a la lettre.Apparement je ne suis pas le seul a rencontrer ce probleme
    quelqun peut il m'aider ou me fournir un lien ou un exemple complet qui fonctionne
    jeudi 18 février 2010 12:19

Réponses

  • Bonsoir,

    J'ai suivi la procédure pas à pas et cela fonctionne.

    Le problème avec visual studio est que l'assistant de source de donnée copie ma base de donnée (j'ai pris une base Access pour les tests) dans plusieurs endroits

    1. à la racine du projet
    2. dans Bin/Debug

    quand je lance mon application puis effectue un changement dans ma base  alors la base à la racine de mon projet n'est pas modifiée mais c'est celle de /bin/debug qui est modifiée.

    est-ce là ton erreur ?

    Voici le code:

    Public Class Form1

     Private Sub CityBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CityBindingNavigatorSaveItem.Click
      'Me.Validate()
      'Me.CityBindingSource.EndEdit()
      'Me.TableAdapterManager.UpdateAll(Me.TestbddDataSet)
      'ce qui a été crée par l'assistant de la source de données
      Try
       Me.Validate()
       Me.CityBindingSource.EndEdit()
       Me.CityTableAdapter.Update(Me.TestbddDataSet.City)
       MsgBox("Update successful")

      Catch ex As Exception
       MsgBox("Update failed")
      End Try
     End Sub

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      'TODO : cette ligne de code charge les données dans la table 'TestbddDataSet.City'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
      Me.CityTableAdapter.Fill(Me.TestbddDataSet.City)
     End Sub
    End Class



    fred
    • Modifié fred75 dimanche 21 février 2010 16:29 ajout du code
    • Marqué comme réponse Alex Petrescu jeudi 25 février 2010 09:17
    samedi 20 février 2010 22:46
  • Bonsoir Debess,

    oui quand tu lances ton application avec F5, tu es en train de debugué
    essaye de générer ton appli et installe la sur le meme pc ou un autre pc et regarde si les données sont modifiées dans ta base

    Si tu es en train d'apprendre VB, je te conseille de commencer par un base access puis une bas SQL avec d'abord une seule table puis plusieurs

    dans l'apprentissage, il faut commencer par des  choses simples puis un peu plus complexe puis un peu plus complexe etc.


    fred
    • Marqué comme réponse Alex Petrescu jeudi 25 février 2010 09:17
    lundi 22 février 2010 22:28

Toutes les réponses

  • Bonjour,

    Peut-tu nous donner l'url de ton exemple ?

    fred
    jeudi 18 février 2010 12:30
  • bonjour fred,
    voici l'URL ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.fr/dv_raddata/html/68befa96-7463-43e8-abcf-dc2f42ccd53d.htm
    J'applique a la lettre la procédure pas a pas .Les données s'affichent sur la grille,je peut les modifier mais si je sort du programme et que je j'affiche la table en question dans l'explorateur de base de donnée les modif.n'ont pas été enregistrées.
    et c'est le meme probleme avec les nombreux exemples fourni sur MSDN Library,tous fonctionnent sauf la mise a jour du fichier de base de données (dans mon cas Northwind.sdf)
    j'ai bien sur appliquer et consulter les réponses du forum mais je n'arrive a rien de mieux si ce n'est de provoquer des erreurs

    Merci de t'interresser a mon probleme
    vendredi 19 février 2010 13:25
  • Bonsoir,

    J'ai suivi la procédure pas à pas et cela fonctionne.

    Le problème avec visual studio est que l'assistant de source de donnée copie ma base de donnée (j'ai pris une base Access pour les tests) dans plusieurs endroits

    1. à la racine du projet
    2. dans Bin/Debug

    quand je lance mon application puis effectue un changement dans ma base  alors la base à la racine de mon projet n'est pas modifiée mais c'est celle de /bin/debug qui est modifiée.

    est-ce là ton erreur ?

    Voici le code:

    Public Class Form1

     Private Sub CityBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CityBindingNavigatorSaveItem.Click
      'Me.Validate()
      'Me.CityBindingSource.EndEdit()
      'Me.TableAdapterManager.UpdateAll(Me.TestbddDataSet)
      'ce qui a été crée par l'assistant de la source de données
      Try
       Me.Validate()
       Me.CityBindingSource.EndEdit()
       Me.CityTableAdapter.Update(Me.TestbddDataSet.City)
       MsgBox("Update successful")

      Catch ex As Exception
       MsgBox("Update failed")
      End Try
     End Sub

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      'TODO : cette ligne de code charge les données dans la table 'TestbddDataSet.City'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
      Me.CityTableAdapter.Fill(Me.TestbddDataSet.City)
     End Sub
    End Class



    fred
    • Modifié fred75 dimanche 21 février 2010 16:29 ajout du code
    • Marqué comme réponse Alex Petrescu jeudi 25 février 2010 09:17
    samedi 20 février 2010 22:46
  • Bonjour,

     

    Merci Fred pour votre explication. Debess, avez-vous enregistré aucun progrès avec votre projet ?

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    lundi 22 février 2010 09:56
  • Bonjour Fred
    voici la copie du prog sur lequel j'essaye d'apprendre VB

    Public

     

    Class Form1

     

    Private Sub TClientBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TClientBindingNavigatorSaveItem.Click

     

    'Me.Validate()

     

    'Me.TClientBindingSource.EndEdit()

     

    'Me.TChariotBindingSource.EndEdit()

     

    'Me.TableAdapterManager.UpdateAll(Me.ManucharDataSet)

     

    Try

     

    Me.Validate()

     

    Me.TClientBindingSource.EndEdit()

     

    Me.TChariotBindingSource.EndEdit()

     

    Me.TClientTableAdapter.Update(Me.ManucharDataSet.TClient)

     

    Me.TChariotTableAdapter.Update(Me.ManucharDataSet.TChariot)

    MsgBox(

    "Update successful")

     

    Catch ex As Exception

    MsgBox(

    "Update failed")

     

    End Try

     

     

     

    End Sub

     

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

     

    'TODOÿ: cette ligne de code charge les donn‚es dans la table 'ManucharDataSet.TClient'. Vous pouvez la d‚placer ou la supprimer selon vos besoins.

     

    Me.TClientTableAdapter.Fill(Me.ManucharDataSet.TClient)

     

    'TODOÿ: cette ligne de code charge les donn‚es dans la table 'ManucharDataSet.TChariot'. Vous pouvez la d‚placer ou la supprimer selon vos besoins.

     

    Me.TChariotTableAdapter.Fill(Me.ManucharDataSet.TChariot)

     

    End Sub

     

    Private Sub TChariotBindingSource_AddingNew(ByVal sender As Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles TChariotBindingSource.AddingNew

     

    Me.TClientBindingSource.EndEdit()

     

    End Sub

    End

     

    Class






    ma BDD est manuchar.sdf comportant 2 tables :Tchariot et Tclient.Tchariot etant la table enfant,une relation avec contrainte de clé étrangère les liant(mise a jour et regle de suppression "cascade")par la colonne "Client" présente dans les 2 tables
    J'ai enfin compris que l'ordre des lignes était important(pourtant c'était ecris!!!) dans la sub Form1_Load.
    Mais cela ne marche Tjrs pas. Ma BDD dans l'explorateur de base de données affiche Tjrs les valeurs que j'ai ajouté manuellement.quant a la base dans bin/debug J'ai un fichier avec un icone en forme de feuille blanche nommé Manuchar.sdf.Est ce le fichier dont tu parle?
    La MAJ Hierarchique de Manuchardataset .xsd a la valeur true
    J'ai essayé le prog ci dessus avec la partie en commentaire actif et pas actif
    TableAdapterManager.Updateall affecte t il uniquement la base en mémoire et non pas celle sur le disque dur.????
    Je crois que je me mélange les pinceaux entre TableAdapterManager.Updateall et tableadapter.update
    peut tu me corriger mon prog .

    merci beaucoup

    lundi 22 février 2010 17:54
  • Bonjour Alex
    Non pas de progrés ou tres peut si ce n'est de commencer a connaitre par coeur la plupart des Vidéo et tutoriel.je pense que je passe a coté de qque chose d'évident mais quoi jene sait pas .
    j'ai répondu plus en détail a Fred75 si tu veut jeter un oeil

    Merci de ta sollicitude
    lundi 22 février 2010 18:00
  • Bonsoir Debess,

    oui quand tu lances ton application avec F5, tu es en train de debugué
    essaye de générer ton appli et installe la sur le meme pc ou un autre pc et regarde si les données sont modifiées dans ta base

    Si tu es en train d'apprendre VB, je te conseille de commencer par un base access puis une bas SQL avec d'abord une seule table puis plusieurs

    dans l'apprentissage, il faut commencer par des  choses simples puis un peu plus complexe puis un peu plus complexe etc.


    fred
    • Marqué comme réponse Alex Petrescu jeudi 25 février 2010 09:17
    lundi 22 février 2010 22:28
  • Bonjour Debess,

     

    Je n’arrive pas à trouver la page que vous avez indiqué, mais je vous propose ce tutoriel de MSDN, qui vous montrera pas à pas la procédure pour récupérer les données et pour enregistrer dans la base de données les nouvelles données que vous avez ajouté à un datagrid.

     

    http://msdn.microsoft.com/fr-fr/library/aa984466(VS.71).aspx

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    mardi 23 février 2010 10:44
  • Alex
    l'url est
    ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.fr/dv_raddata/html/68befa96-7463-43e8-abcf-dc2f42ccd53d.htm


    c'est une url de l'aide donc press F1 et colle l'url ci-dessus


    fred
    mardi 23 février 2010 22:51
  • Salut Fred,

     

    Oui, je l’ai essayé mais pour moi l’url ne marche mas, je ne sais pas pourquoi.

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    jeudi 25 février 2010 09:16