Forums Neueste Beiträge
 

Transaktionen und Threads

08/10/2008 - 07:35 von andi rickenbach | Report spam
Hallo,

in meiner vb.net 2005 Applikation sollte in einem Timer alle x Sekunden
Minuten oder was auch immer in eine SQL Server Datenbank geschrieben werden.
Sobald ich aber eine neue Transaktion starte, mit BeginnTransaction, kommt
die Meldung
"Eine neue Transaktion ist unzulàssig, weil in dieser Sitzung andere Threads
ausgeführt werden".

Was mache ich da falsch? Hàtte da jemand eine Idee?

Ich habe genau dasselbe mit OleDB und Access gemacht. Da gibt es keine
Probleme. Sobald ich alles auf Sql Server anpasse, kommt der Fehler.

Vielen Dank für Eure Hilfe.


Im Code ist das ungefàhr so aufgebaut:

Class Form1
Private Sub m_Timer_Tick(ByVal se...
...
Call DoSomething()
...
End Sub

Private Sub DoSomething()
...
For Each Item As ListViewItem In...
ConnectDatabase(IDB)
IDB.WriteIntoDB

Next
...
end Sub
End Class

Class DB

Public Function WriteIntoDB
...
Dim DBCommand As DbCommand = new SqlClient.SqlCommand
DBCommand.Connection = DBConn
Dim SqlTransaction As SqlClient.SqlTransaction = DBConn.BeginTransaction()
hier oben gibts diese Exception
...
End Function
End Class
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
09/10/2008 - 02:28 | Warnen spam
Hallo Andi,

"andi rickenbach" schrieb:

For Each Item As ListViewItem In...
ConnectDatabase(IDB)
IDB.WriteIntoDB



Warum verbindest Du dich innerhalb der Schleife jedesmal aufs neue
mit der Datenbank? Das ist IMHO nur Resourcenverschwendung.

Dim DBCommand As DbCommand = new SqlClient.SqlCommand
DBCommand.Connection = DBConn
Dim SqlTransaction As SqlClient.SqlTransaction = DBConn.BeginTransaction()
hier oben gibts diese Exception



gibts denn irgendwo auch ein Commit, bzw. Rollback der Transaction?
Werden die Objekte auch immer schon "Disposed"? ...?

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen