Problème étrange...Aide svp [VB.NET] - SQL/NoSQL - Programmation
Marsh Posté le 10-08-2005 à 17:32:13
Personne n'a une idée de ce qui pourrait créer ce problème?
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?
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
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.
Marsh Posté le 12-08-2005 à 15:16:26
xzndr a écrit : J'AI TROUVÉ LA SOLUTION!!! |
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 = "[" |
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
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!
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:
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