これはおそらくコードの問題ではありません。これはSQLServerのバグです。 SQL Server 2005でも同様の問題が発生しました。これは適切な条件下でのみ発生したため、これまでに見た人はほとんどいませんでした。見た人は非常に混乱していました。
そうは言っても、同じ問題を抱えている他の人たちのために働いたことを確認するためのいくつかの事柄があります:
- 閉じられていないDataReaderを探します。必要な行を読んだ後、myReader.Close()を実行していることを確認してください。多くの人は閉じずにただロックオンします。
- 可能な限り、OleDbTransactionsの代わりにネイティブのSqlTransactionクラスを使用してください。
- あなたの取引を見てください。接続を閉じる前に、コミット/ロールバックがクリーンであることを確認してください。
- Connection.BeginDbTransactionではなくConnection.BeginTransationを使用する