我每次执行以下操作都会出现以下异常:
Using cnn As SqlConnection = New SqlConnection(ConnectionStr)
cnn.Open() 'I am fine up to here'
End Using 'Here I am getting the following exception'
手动调用cnn.Dispose()会导致相同的异常。在我的代码大部分地方似乎都没有问题,但就是在这个函数中,我无法关闭我打开的连接,因为我不断收到ThreadAbortException异常。我很困惑,有什么建议吗?有什么提示吗?下面是我得到的异常信息:
System.TypeInitializationException: The type initializer for 'System.Data.ProviderBase.DbConnectionClosedPreviouslyOpened' threw an exception. ---> System.Threading.ThreadAbortException: Exception of type 'System.Threading.ThreadAbortException' was thrown.
--- End of inner exception stack trace ---
at System.Data.ProviderBase.DbConnectionInternal.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlInternalConnection.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Close()
at System.Data.SqlClient.SqlConnection.Dispose(Boolean disposing)
ThreadAbortException
是一种异步异常。找出引发它的原因应该是一个有趣的挑战。 - vcsjonescnn.Open
之后立即调用cnn.Dispose
,是否会出现错误? 如果没有,则可能指向cnn.Open
和End Using
行之间的某些内容导致问题。 - Matt