Problème avec adapter.update()

Résolu
adnane_adnane Messages postés 3 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 22 juillet 2012 - 22 juil. 2012 à 05:04
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 22 juil. 2012 à 13:08
bonjour j'ai écris un code simple a fin de tester le fonctionnement de ADO.NET en mode déconnecté, j'ai etulisé olecommandbuilder pour générer le requête de mise à jours automatiquement mais ça n a pas marché, ça me donne l'erreur suivante:
Erreur de syntaxe (opérateur absent) dans
"l'expression '((Au_ID ?) AND ((? 1 AND Author IS NULL) OR (Author = ?)) AND ((? = 1 AND Year Born IS NULL) OR (Year Born = ?)))'."

le code est le suivant:
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Net


Public Module modul1
    Const strcon = "provider=microsoft.jet.oledb.4.0;data source=c:\db1.mdb"
    Public cx As OleDbConnection
    Dim ds As DataSet
    Dim ad As OleDbDataAdapter
    Dim cm As OleDbCommand
    Dim cmb As OleDbCommandBuilder
    '*********************************************************************
    Public Sub main()
        connection()
        modification()
        enregistrement()

    End Sub

    Sub connection()
        cx = New OleDbConnection(strcon)
        cm = New OleDbCommand("select * from authors", cx)
        ad = New OleDbDataAdapter
        ad.SelectCommand = cm
        ds = New DataSet
        ad.Fill(ds, "authors")


    End Sub

    Sub modification()
        'ds.Tables(0).Rows(1).Item(1) = "zaka"

        Dim Matable As DataTable
        Matable = ds.Tables(0)
        'Dim LaLigne As DataRow()
        'LaLigne Matable.Select("au_id" & 2)
        'LaLigne(0)(1) = "zaka"
        Matable.Rows(3).Item(1) = "zak"
        Form1.DataGrid1.DataSource = ds.GetChanges



    End Sub
    Sub enregistrement()
        cmb = New OleDbCommandBuilder(ad)
        ad.UpdateCommand = cmb.GetUpdateCommand
        ad.Update(ds, "authors")
        cx.Close()
    End Sub
end module



merci pour votre aides

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
22 juil. 2012 à 13:08
Bonjour,

Rapidement, je pense que le champ "Year Born" pose problèmé à caude de l'espace dedans.
Une des règles de base quand on nomme un champ dans une BDD, c'est de na pas mettre d'espace dedans.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
3
Rejoignez-nous