VBiB/ACCB.net - Visual Basic in België | .net Ineta User Group  
(login to hide)
Hoofdmenu

Advertenties

Het Computer Winkeltje HCW


Evenementen

CoNCURRENCY VIOLATIoN - Oud Forum inhoud (alleen lezen)
U bevindt zich > Oude forum > Visual Basic .Net > Databases ... (VB.Net) > Concurrency violation
Gepost door dbschaaf gepost op 28/05/2005 om 21:04

Het betreft een update probleem van een Access database in een standalone applicatie. Via een dataadapter en een dataset moet door het programma automatisch de nummering van een aantal records aangepast worden. De veranderingen worden in de dataset doorgevoerd en via "GetChanges" in een aparte dataset dsChangedRows geplaatst. Tot zover gaat het prima. Dan de volgende code:

Call UpdateRegelNrs(dsChangedRows)

************************************************************ *****************.

Private Sub UpdateRegelNrs(ByVal mydataset) '23/05/2005

'1: Aanmaken van de connectiestring

Dim oConnection As New OleDb.OleDbConnection(BxConnString)

'2: Openen van de verbinding

oConnection.Open()

'3: Maken van een dataadapter.

Dim MyDataAdapter As New OleDb.OleDbDataAdapter

'4: Maken van een specifiek updatecommando voor de dataadapter.

Dim oUpdateCommand As New OleDb.OleDbCommand(UpdateRglNrsCommando, oConnection)

'UpdateRglNrsCommando( zie functie verderop)

MyDataAdapter.UpdateCommand = oUpdateCommand

'5: Parameters aan het update commando toevoegen

oUpdateCommand.Parameters.Add("@Identifier", System.Data.OleDb.OleDbType.Numeric, 4, "Identifier")

oUpdateCommand.Parameters.Add("@Regelnummer", System.Data.OleDb.OleDbType.Numeric, 4, "Regelnummer")

'6: Vullen van de dataset met de gegevens van de dataadapter.

Try

MyDataAdapter.Update(mydataset, "TblVerslagregels")

Catch ex As DBConcurrencyException

Dim customErrorMessage As String

customErrorMessage = "Concurrency violation" & vbCrLf

customErrorMessage += CType(ex.Row.Item(3), String)

MessageBox.Show(customErrorMessage)

Finally

'7: Sluiten van de verbinding.

oConnection.Close()

End Try

************************************************************ **********************

Private Function UpdateRglNrsCommando() As String '23/05/2005

'Dit is het update commando van het regelbestand om de regelnummers aan te passen.

UpdateRglNrsCommando = "UPDATE TblVerslagregels SET Regelnummer = @Regelnummer" _

& " WHERE Identifier = @Identifier"

End Function

Probleem is dat ik de melding Concurrency violation krijg en dat daardoor de update niet plaatsvindt. (Na het ophalen van de dataset is de verbinding afgesloten zodat het mdb bestand niet geopend is).

Wie kan mij helpen. Ik heb al enige tijd op het net gezocht....

Gepost door dbschaaf gepost op 01/06/2005 om 21:12

Ik heb de oplossing uiteindelijk toch zelf gevonden!!!

Nadat ik de volgorde van de definitie van de parameters had omgedraaid(!!??) deed het programma het naadloos.

Dus: dit is niet goed

oUpdateCommand.Parameters.Add("@Identifier", System.Data.OleDb.OleDbType.Numeric, 4, "Identifier")

oUpdateCommand.Parameters.Add("@Regelnummer", System.Data.OleDb.OleDbType.Numeric, 4, "Regelnummer")

en zo werkt het wel (Zucht)

oUpdateCommand.Parameters.Add("@Regelnummer", System.Data.OleDb.OleDbType.Numeric, 4, "Regelnummer")

oUpdateCommand.Parameters.Add("@Identifier", System.Data.OleDb.OleDbType.Numeric, 4, "Identifier")

Houdt dit in dat je de parameters moet toevoegen in de volgorde waarin ze in het sql statement staan??

Anyway, ik kan weer verder. Op naar het volgende probleem in .NET

Start - Zoeken op oude forum

 

 
Postnuke - ADODB Database - PHP 4/5 - pnPhpBB2 - Hosting bij Openminds
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno 21-12-2000)
vbib.be gestart op 1/03/06 (extra vanaf 1/09: vbnet.be en vbdotnet.be)
VBiB is gerelateerd met wintips.be

Nieuwsbrief RSS Feed: backend.php