Dies ist wahrscheinlich kein Problem mit Ihrem Code. Es ist ein Fehler in SQL Server. Sie hatten ein ähnliches Problem in SQL Server 2005. Es trat nur unter Bedingungen auf, die genau richtig waren, also haben es nur sehr wenige Leute jemals gesehen und diejenigen, die es taten, waren sehr verwirrt.
Allerdings sind hier einige Dinge zu überprüfen, die bei anderen mit dem gleichen Problem funktioniert haben:
- Suchen Sie nach DataReadern, die nicht geschlossen sind. Stellen Sie sicher, dass Sie myReader.Close() ausführen, nachdem Sie die gewünschten Zeilen gelesen haben. Viele Leute schaukeln einfach weiter, ohne zu schließen.
- Verwenden Sie nach Möglichkeit die native SqlTransaction-Klasse anstelle von OleDbTransactions.
- Sehen Sie sich Ihre Transaktionen an. Stellen Sie sicher, dass Sie sauber festschreiben/zurücksetzen, bevor Sie Ihre Verbindung schließen.
- Verwenden Sie Connection.BeginTransation statt Connection.BeginDbTransaction