Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#net中单击“取消”时关闭所有数据库连接_C#_.net - Fatal编程技术网

如何在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();
    }
    }

你所说的杀死是什么意思?可能你需要显示代码。当你可以关闭它时,为什么要终止它?当未关闭的数据读取器仍然存在时,可能会发生此错误。