[VB.NET] Problème étrange...Aide svp

Problème étrange...Aide svp [VB.NET] - SQL/NoSQL - Programmation

Marsh Posté le 10-08-2005 à 16:34:19    

Bonjour!  J'ai un problème un peu étrange...  Je me connecte sur une base de données access 2003 je remplis mon dataset.  Je modifie, par exemple, le champ de la ligne 1 et de la colonne 1: pas de problème.  Par contre, dès que j'essaie de modifier un champ des autres colonnes (sur n'importe quelle ligne), je reçois un message d'erreur:
 

Citation :

Erreur de syntaxe dans l'instruction UPDATE


 
J'utilise un oledbCommandBuilder puisque ma commande est très simple (SELECT * from tabUsers)
 
Voici mon code:
 


        Dim Connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ...\DB\DataBase.mdb;" )
         
        Dim tabUsersCommand As New OleDbCommand("SELECT * from tabUsers", Connection)
         
        Dim DataSet As New DataSet
 
        Connection.Open()
 
        Dim DataAdapter As New OleDbDataAdapter(tabUsersCommand)
 
        DataAdapter.Fill(DataSet, "tabUsers" )
        DataAdapter.FillSchema(DataSet.Tables(0), SchemaType.Mapped)
 
        Connection.Close()
         
        'Modifie les valeurs d'une rangée
        'Colonne USERNAME
        DataSet.Tables(0).Rows(1).Item(0) = "dnkjdmvddf"
        'Colonne PASSWORD
        DataSet.Tables(0).Rows(1).Item(1) = "jadkdnvdo"
        'Colonne NO_GROUP
        DataSet.Tables(0).Rows(1).Item(2) = 1
 
        Try
            If DataSet.HasChanges Then
                Dim cmdBuilder As New OleDbCommandBuilder(DataAdapter)
                DataAdapter.Update(DataSet.Tables(0).GetChanges())
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


 
Vraiment, je suis dépassé  :??:  , il y a près de 5 heures que je suis coincé sur ce bogue que je ne comprend pas du tout.  Voyez-vous dans mon code quelque chose que je ne fais pas de correct?


Message édité par xzndr le 10-08-2005 à 16:36:50
Reply

Marsh Posté le 10-08-2005 à 16:34:19   

Reply

Marsh Posté le 10-08-2005 à 17:32:13    

Personne n'a une idée de ce qui pourrait créer ce problème?

Reply

Marsh Posté le 10-08-2005 à 19:00:52    

J'AI TROUVÉ LA SOLUTION!!! :)
 
Mes colonnes dans access portaient respectivement les noms suivants:
 
USERNAME   PASSWORD  et GROUP
 
Je viens de déduire que nous ne pouvons pas mettre "PASSWORD" comme nom de champ puisqu'en le changeant pour PW, tout fonctionnne!!!!
 
Étrange, non?? Quelqu'un a une idée pourquoi?

Reply

Marsh Posté le 10-08-2005 à 21:24:37    

peut etre que password est un mot réservé et qu'il ne peut être utilisé comme nom de table

Reply

Marsh Posté le 10-08-2005 à 21:51:56    

Probablement...  alors le problème résiderait dans ADO.NET et non dans Access puisque Access ne me donne aucun message d'erreur... ce n'est que le OleDbDataAdapter qui m'en donne.

Reply

Marsh Posté le 12-08-2005 à 15:16:26    

xzndr a écrit :

J'AI TROUVÉ LA SOLUTION!!! :)
 
Mes colonnes dans access portaient respectivement les noms suivants:
 
USERNAME   PASSWORD  et GROUP
 
Je viens de déduire que nous ne pouvons pas mettre "PASSWORD" comme nom de champ puisqu'en le changeant pour PW, tout fonctionnne!!!!
 
Étrange, non?? Quelqu'un a une idée pourquoi?


Pas la peine de s'embêter à renommer le champ, suffit de l'entourer avec [ et ] dans les requêtes. Et pour un CommandBuilder, il faut mettre ça pour qu'il les ajoute tout seul :

CmdBuilder.QuotePrefix = "["
CmdBuilder.QuoteSuffix = "]"


Message édité par FlorentG le 12-08-2005 à 15:16:49
Reply

Marsh Posté le 12-08-2005 à 15:17:49    

Sinon y'a la liste des noms réservés, mais avec l'escape avec [ et ], on s'en fout :)

Reply

Marsh Posté le 15-08-2005 à 17:21:42    

Merci beaucoup je ne savais pas que l'on pouvait se servir de préfixes.  Je m'en servirai la prochaine fois! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed