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 Adaptater lors de l'update d'une base access


Sujet :

VB.NET

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut Erreur Adaptater lors de l'update d'une base access
    Bonjour,
    J'utilise un adaptater pour mettre à jour une base access.
    Cela marche très bien pour la suppression mais pas l'insertion, j'ai une erreur de la forme "Erreur de syntaxe dans INSERT INTO"

    Try
    MyConnexion.Open()
    ' Création CommandBuilder
    '(genere automatiquement l'update entre le dataSet et la base de donnée
    Dim CmdBuild As New OleDb.OleDbCommandBuilder(Adapter)
    Adapter.UpdateCommand = CmdBuild.GetUpdateCommand()
    'Adapter.DeleteCommand = CmdBuild.GetDeleteCommand
    'Adapter.InsertCommand = CmdBuild.GetInsertCommand
    Adapter.Update(ObjetDataSet, table)
    MyConnexion.Close()
    Catch ex As OleDbException
    MsgBox(ex.Message & ex.ErrorCode)
    MyConnexion.Close()
    End Try
    Y-a-t-il un moyen d'avoir plus d'info sur le message d'erreur ?

    Pour l'instant j'arrive à contourner le problème en passant des commandes
    Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
    Mycommand.CommandText = "INSERT INTO IMAGES([Image], [Commentaire]) VALUES (?, ?)"
    MyConnexion.Open()
    Mycommand.Parameters.Add(New OleDbParameter("Image", OleDbType.VarBinary, bytImage.Length, ParameterDirection.Input, False, CByte(0), CByte(0), "", DataRowVersion.Current, bytImage))
    Mycommand.Parameters.Add(New OleDbParameter("Commentaire", System.Data.OleDb.OleDbType.VarWChar, 50, ParameterDirection.Input, False, CByte(0), CByte(0), "", DataRowVersion.Current, commentaire))
    Mycommand.ExecuteNonQuery()
    MyConnexion.Close()
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    quelle est ta SelectCommand ?

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    Merci pour ton aide,
    Je rentre plus dans le sujet:
    j'ai créé une base access avec 3 champs:
    ID: qui est un nombre, clef primaire, auto-incrémente
    Image: qui est un OLE objet, soit dans mon cas un tableau de byte
    Commentaire: texte

    Je crée un dataset avec la commande "SELECT Id, Image, Commentaire FROM IMAGES" (IMAGES étant le nom de la table).
    Je transfert cela dans une DataTable, puis une DataGridView
    (rq: je ne m'attendais à voir très simplement dans le champ Image directement l'image sans rien faire )

    Donc jusque là tout marche, j'arrive à supprimer, remettre à jour un champ avec l'adaptater (voir 1er code au dessus), mais cela plante tjs pour un ajout sur la ligne "Adapter.Update(ObjetDataSet, table)"

    L'adaptater et le commandBuilder te permettent de générer tout seul les requets SQL quelque soit ton type de DataBase, non ??

    J'ai essayé de voir ce qu'il balance en mettant avant la ligne Adaptater:

    MsgBox(Adapter.InsertCommand.CommandText) => ce qui donne "INSERT INTO IMAGES (ID, IMAGE, Commentaire) VALUES (?,?,?)"

    J'ai essayé de rendre les champs plus simple dans access: juste du texte, tjs le même problème

    Une idéé pour localiser mon problème

Discussions similaires

  1. Erreur lors d'un update d'une table sql serveur en liaison ODBC avec SAS
    Par wizou44 dans le forum Administration et Installation
    Réponses: 5
    Dernier message: 25/05/2009, 09h44
  2. Erreur lors de la connexion a une base access
    Par skunkies dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/10/2008, 17h17
  3. erreur lors d'un update d'une base de données
    Par tibtibby dans le forum ASP
    Réponses: 1
    Dernier message: 09/06/2006, 14h30
  4. Lenteur lors de la lecture d'une base Access
    Par Lio590 dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/11/2005, 12h24
  5. [c#] Update d'une base Access
    Par elendila dans le forum ASP.NET
    Réponses: 65
    Dernier message: 09/09/2005, 09h23

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