Es probable que esto no sea un problema con su código. Es un error en SQL Server. Tenían un problema similar en SQL Server 2005. Solo ocurría en las condiciones adecuadas, por lo que muy pocas personas lo vieron y los que lo vieron estaban muy confundidos.
Habiendo dicho eso, aquí hay algunas cosas para verificar que han funcionado para otros con el mismo problema:
- Busca lectores de datos que no estén cerrados. Asegúrese de estar haciendo myReader.Close() después de leer las filas que desea. Muchas personas simplemente rockean sin cerrar.
- Utilice la clase SqlTransaction nativa en lugar de OleDbTransactions siempre que sea posible.
- Mire sus transacciones. Asegúrese de confirmar/retroceder limpiamente antes de cerrar su conexión.
- Utilice Connection.BeginTransation en lugar de Connection.BeginDbTransaction