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 :

Erreur dataadapter update dataset problem avec access 2007 [Débutant]


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Erreur dataadapter update dataset problem avec access 2007
    Bonjour à tous,


    System : Windows 8.1
    Version de .Net : Visual Studio Communoty 2013
    Version de Base de donnée : Access 2007
    Machine : Athlon X3 440
    RAM : 4 Go


    j'ai connecté une base de donnée a VB.Net en suivant un tuto, mais j'ai un problème avec mon code. lors de l'exécution, les enregistrements apparaissent sans souci, je peux créer un nouveau sans souci, cependant lorsque je clique sur le bouton Ajouter j'ai le message d'erreur suivant.

    An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

    j'ai ajouter un On Error Resume Next,

    Mais, la mise a jour ne passe pas.

    J'ai remarquer aussi en important la base depuis l'assistant de VB.NET à partir de l'onglet Data Source, puis en faisant un Drag and Drop des champs sur un formulaire, je peux voir les enregistrement, mais la mise a jour de ma base ne ce fais pas.

    Voici mon code :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Imports System.Data.OleDb
    Public Class Form1
     
        Dim Cnx As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\loic\Documents\facture.accdb")
        Dim Da As New OleDbDataAdapter("select * from Client", Cnx)
        Dim Ds As New DataSet
        Dim Bnd As BindingManagerBase
     
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Da.Fill(Ds, "Client")
            Bnd = BindingContext(Ds.Tables("Client"))
            TextBox1.DataBindings.Add("Text", Ds.Tables("Client"), "N°")
            TextBox2.DataBindings.Add("Text", Ds.Tables("Client"), "Nom")
            TextBox3.DataBindings.Add("Text", Ds.Tables("Client"), "Prénom")
            TextBox4.DataBindings.Add("Text", Ds.Tables("Client"), "Téléphone personnel")
            TextBox5.DataBindings.Add("Text", Ds.Tables("Client"), "Téléphone mobile")
            TextBox6.DataBindings.Add("Text", Ds.Tables("Client"), "Adresse")
            TextBox7.DataBindings.Add("Text", Ds.Tables("Client"), "Ville")
            TextBox8.DataBindings.Add("Text", Ds.Tables("Client"), "Code postal")
        End Sub
     
        Private Sub BtnPrécédent_Click(sender As Object, e As EventArgs) Handles BtnPrécédent.Click
            Bnd.Position -= 1
            LblEnregistrement.Text = Bnd.Position & " sur " & Ds.Tables("Client").Rows.Count
        End Sub
     
        Private Sub BtnSuivant_Click(sender As Object, e As EventArgs) Handles BtnSuivant.Click
            Bnd.Position += 1
        End Sub
     
        Private Sub BtnDébut_Click(sender As Object, e As EventArgs) Handles BtnDébut.Click
            Bnd.Position = 0
        End Sub
     
        Private Sub BtnFin_Click(sender As Object, e As EventArgs) Handles BtnFin.Click
            Bnd.Position = Ds.Tables("Client").Rows.Count
        End Sub
     
        Private Sub Nouveau_Click(sender As Object, e As EventArgs) Handles Nouveau.Click
            Bnd.AddNew()
        End Sub
     
        Private Sub Supprimer_Click(sender As Object, e As EventArgs) Handles Supprimer.Click
            Bnd.RemoveAt(Bnd.Position)
            Da.Update(Ds, "Client")
        End Sub
     
        Private Sub Modifier_Click(sender As Object, e As EventArgs) Handles Modifier.Click
            Bnd.EndCurrentEdit()
            Da.Update(Ds, "Client")
        End Sub
     
        Private Sub Ajouter_Click(sender As Object, e As EventArgs) Handles Ajouter.Click
            ' On Error Resume Next
            Dim FAjouter As New OleDbCommandBuilder(Da)
            Bnd.EndCurrentEdit()
            Da.Update(Ds, "Client")
        End Sub
     
    End Class
    merci... pour toute réponse.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    plusieurs choses

    le forum permet de faire de la mise en page (balise code, bouton # en haut de l'interface de saisie de message)
    ca permet de rendre lisible du code (car là on ne va même pas lire ton code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public sub A()
       dim b as string ' c'est plus lisible
    end sub
    tu peux éditer ton message

    on error resume next est à bannir (c'est une des instructions les plus stupides au monde)
    si tu viens de vb6 il faut oublier tout ce que tu sais sur la programmation pour réapprendre comment coder en POO

    à la place il faut utiliser try/Catch
    dans le catch tu récupère une instance d'exception (=erreur) qui en plus du message et du type d'erreur te donne le numéro de ligne qui passe en erreur

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci pour la réponse,

    Effectivement je viens d'un monde beaucoup plus loin que le VB6, en fait j'ai étudié dans le passé le VB5 et 4 plus ou moins et avant le basic 1 sur THOMSON et GWBASIC sur PC.
    Je veux réapprendre le basic, j'ai remarqué aussi que beaucoup d'exemple sur le net parle du TRY mais pour l'instant j'ignore la signification dans le .NET, je vais faire des recherche pour essayer de comprendre un peu plus. En ce qui concerne la balise je me posais la question comment poster du code ainsi. encore merci pour les deux réponses.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    ok, je viens de trouver des explications sur le TRY, j'ai créer ce code par la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Private Sub Ajouter_Click(sender As Object, e As EventArgs) Handles Ajouter.Click
            Try
     
                Bnd.EndCurrentEdit()
                Da.Update(Ds, "Client")
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
     
     
     
     
     
        End Sub
    mon erreur est renvoyé dans la variable catch mais pour moi c'est du chinois, voici une capture de l'erreur
    Nom : Capture.PNG
Affichages : 296
Taille : 19,3 Ko

    La ligne 72 correspond à : Da.Update(Ds, "Client")
    merci pour vos réponse

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    les variables de classes, il vaut mieux leur mettre private ou public (ou autre) que Dim

    les variables de classes, beaucoup les préfixe d'un _ permettant ainsi dans le code de savoir si on à affaire à une variable de classe ou une variable locale

    regarde si tu peux modifier le titre de ton topic en "Erreur dataadapter update dataset" c'est plus parlant, et je n'utilise pas ces objets "assistants" donc je ne pourrais t'aider là dessus

    un cours sympa : http://plasserre.developpez.com/cours/vb-net/

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    salut...

    Je viens de trouver le problème en postant sur un autre forum.
    Merci pour votre aide précieuse, le problème venait tout simplement des caractères spéciaux é et espace dans les colonne de la base de donnée.

    Merci à tous...

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

Discussions similaires

  1. probleme avec access 2007 en asp
    Par rollins dans le forum Windows
    Réponses: 0
    Dernier message: 14/04/2014, 17h04
  2. Messages d'erreurs avec access 2007 runtime SP1
    Par praspail dans le forum Runtime
    Réponses: 4
    Dernier message: 10/09/2008, 15h09
  3. Action TransférerTexte dans une macro avec Access 2007
    Par EtienneG dans le forum Modélisation
    Réponses: 2
    Dernier message: 19/06/2007, 23h43
  4. PB avec access 2007
    Par aida75 dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/05/2007, 16h13
  5. Erreur de code ou probleme avec le débugger
    Par croc14 dans le forum MFC
    Réponses: 8
    Dernier message: 07/06/2006, 14h15

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