如何在c#net中单击“取消”时关闭所有数据库连接
我的系统出现超时过期问题。有关详细信息,请参阅错误消息:如何在c#net中单击“取消”时关闭所有数据库连接,c#,.net,C#,.net,我的系统出现超时过期问题。有关详细信息,请参阅错误消息: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. Description: An unhandled exce
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.]
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +5079753
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +126
System.Data.SqlClient.SqlConnection.Open() +125
SubSonic.SqlDataProvider.CreateConnection(String newConnectionString) +37
SubSonic.SqlDataProvider.CreateConnection() +25
SubSonic.AutomaticConnectionScope..ctor(DataProvider provider) +62
SubSonic.SqlDataProvider.GetReader(QueryCommand qry) +54
SubSonic.DataService.GetReader(QueryCommand cmd) +25
SubSonic.StoredProcedure.ExecuteTypedList() +47
Db.Employee.FindByUsername(String sUsername) in d:\Hudson\jobs\SMART Staff - Dev\workspace\Staff\site\Classes\DataAccess\Employee.cs:426
CurrentUser.get_SmartID() in d:\Hudson\jobs\SMART Staff - Dev\workspace\Staff\site\Classes\CurrentUser.cs:38
DbRoleProvider.GetRolesForUser(String usernameIgnored) in d:\Hudson\jobs\SMART Staff - Dev\workspace\Staff\site\Classes\DbRoleProvider.cs:21
System.Web.Security.RolePrincipal.IsInRole(String role) +182
System.Web.Configuration.AuthorizationRule.IsTheUserInAnyRole(StringCollection roles, IPrincipal principal) +132
System.Web.Configuration.AuthorizationRule.IsUserAllowed(IPrincipal user, String verb) +264
System.Web.Configuration.AuthorizationRuleCollection.IsUserAllowed(IPrincipal user, String verb) +201
System.Web.Security.UrlAuthorizationModule.OnEnter(Object source, EventArgs eventArgs) +9018637
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
当我在c#net中单击“取消”或“刷新页面”时,是否有人知道如何关闭所有已连接的数据库连接?也许这可以帮助您:
但是不确定,您没有告诉我您使用的是什么DBMS。您应该注意在代码结束之前释放所有对象,对于数据库连接,您应该确保尽可能短地打开它们,例如,您可以使用(using)关键字:
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
///Use the connection ....
///.
///.
///.
/// The connection will be closed and disposed automatically before the end of (using) block;
}
打开连接后,请尝试按如下方式关闭连接:
using (SqlConnection conn = new SqlConnection(connectionString))
{
try
{
//
//
//
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (conn != null) conn.Close();
}
}
你所说的杀死是什么意思?可能你需要显示代码。当你可以关闭它时,为什么要终止它?当未关闭的数据读取器仍然存在时,可能会发生此错误。