[VB .NET e Access] problema con l'Update di un record

domenica 10 aprile 2011 - 21.19
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010  |  Access (.mdb)

NeXuS26 Profilo | Newbie

salve ragazzi, spero possiate darmi un mano. sto impostando la seguente stringa di update:

Public Shared updateString As String = "UPDATE Company SET compFullName = @NAME, compPhoneNumber = @PHONE1, compPhoneNumber1 = @PHONE2, compFaxNumber = @FAX, compEmail1 = @MAIL1, compEmail2 = @MAIL2, compWebAddress = @WEB, idContact = @IDCONTACT, compEmailContacted = @MAILYESNO, compTelContacted = @PHONEYESNO, compNotes = @NOTES, compCreationDate = @CREATED, compLastModified = @MODIFIED WHERE idCompany = @ID"

Costruisco tutti i parametri richiesti, con i tipi corretti e li inserisco in una list(of oledbparameter) che passo ad un metodo shared che li aggiunge alla collection di un command (oledbcommand.parameters)... tutto và dove deve andare (è giusto x rendere l'idea) col debugger ho controllato tutto, i parametri e i valori sono giusti. eseguo su tale oledbcommand una ExecuteNonQuery che (porco zio) mi ritorna SEMPRE 0!!!!

la funzione che esegue la query è questa, è parte di un helper (DBHelper.ExecuteNonQuery):

Public Shared Function ExecuteNonQuery(ByVal query As String, Optional ByVal params As List(Of OleDb.OleDbParameter) = Nothing) As Integer
Dim q As OleDb.OleDbCommand
Dim ret As Integer = 0

Try
q = New OleDb.OleDbCommand(query, mConnection) 'mConnection è un campo privato della classe in cui si trova il metodo

If params IsNot Nothing Then
If params.Count <> 0 Then
For Each p As OleDb.OleDbParameter In params
q.Parameters.Add(p)
Next

End If
End If

mConnection.Open()

ret = q.ExecuteNonQuery

mConnection.Close()

etc...etc...

dovrebbe andare, dato che non va, o sto sbagliando qualcosa di macroscopico che non riesco a vedere, oppure c'entra il motore db di access..... (e ti pareva) ho sentito che bisogna inserirli in ordine i parametri da passare al oledbcommand, ma io lo faccio.. per cui il problema non può essere quello.
ho provato ad utilizzare la stessa funzione (dbhelper.executenonquery) scrivendomi la stringa di update a manina e non passando la lista di parametri, in questo modo funziona, quindi c'è qualcosa che non và nei parametri (ma nel debugger sono tutti giusti!!!), sono sicuro che sia access il colpevole, c'è da adottare qualche metodo particolare??
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5