ciao a tutti
sto sistemando un programma fatto con vb.net

e ho questo dubbio che non riesco a risolvere:

io ho questo codice con cui scrivo i dati di un access nella mia datagrid

------------------------------------

With dbAdaptr
'Populate(table)
SQLStr = "select * from tab_for"
.TableMappings.Add("Table", "listino")
cmd = New System.Data.OleDb.OleDbCommand(SQLStr, cn)
cmd.CommandType = CommandType.Text
.SelectCommand = cmd
.Fill(dsListini)
.Dispose()
End With

-----------------------------------

e fin qui tutto bene poi fatto questo devo salvare i dati modificati nella datagrid
quindi ho fatto questo codice:

---------------------------------------

With dbAdaptr
SQLStr = "UPDATE tab_for_art SET NOME_FORNITORE = @NOME_FORNITORE "
cmd = New System.Data.OleDb.OleDbCommand(SQLStr, cn)
cmd.CommandType = CommandType.Text
.UpdateCommand = cmd
.Update(dsListini.Tables("listino"))
dsListini.Clear()
End With

--------------------------------------

ora l'errore è nella query perchè se faccio la prova di assegnare al campo NOME_FORNITORE un valore fisso lo fa
es.
"UPDATE tab_for_art SET NOME_FORNITORE = '1'"

quindi cosa c'è di sbagliato
la @ prima del nome campo ho visto su internet che veniva usata per passare il valore del campo della tabella
o sbaglio??