Access Visual Basic .NET en de update query met parameters

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • NEOeo
  • Registratie: December 2003
  • Laatst online: 03-09 13:01
Beste Tweakers,

Ik zit met een vaag probleem.
Ik heb een grote UPDATE query welke een tabel in een access database moet aanpassen.
De aanpassingen worden doorgevoerd, maar als ik de volgorde niet perfect heb dan raakt gaat het door elkaar. Zoals bijvoorbeeld hieronder in een stukje code, zet ik nummer op de plaats van naam en andersom, dan komt nummer op een 1 of andere vage manier in de database ook op de plek van naam.
Doe ik iets fout of is access icm. VB.NET gewoon zo fucked up?
Dim Command As OleDbCommand = New OleDbCommand()

Command.Connection = objConnection
Command.CommandType = CommandType.Text

Command.CommandText = "UPDATE tabel SET nummer = @nummer, naam = @naam WHERE id = 1"

Command.Parameters.AddWithValue("@nummer", txtNummer.Text)
Command.Parameters.AddWithValue("@naam", txtNaam.Text)

Command.ExecuteNonQuery()

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waar hoort mijn topic?
PRG >> OFF

En als je code post, gebruik dan code tags a.u.b.

Bij mijn weten ondersteunt de Access driver gewoon geen named parameters en houdt 'ie dus de positie=index van de parameters aan.

[ Voor 19% gewijzigd door RobIII op 27-04-2010 17:49 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Wat je fout doet is dat je de documentatie niet leest. ;)
The OLE DB .NET Provider does not support named parameters for passing parameters to an SQL statement or a stored procedure called by an OleDbCommand when CommandType is set to Text. In this case, the question mark (?) placeholder must be used. For example:

SQL:
1
SELECT * FROM Customers WHERE CustomerID = ?

Therefore, the order in which OleDbParameter objects are added to the OleDbParameterCollection must directly correspond to the position of the question mark placeholder for the parameter in the command text.
offtopic:
Heeft niks met access te maken trouwens.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • NEOeo
  • Registratie: December 2003
  • Laatst online: 03-09 13:01
beetje late reactie, maar bedankt!