为了防止Connection忘记关闭,我包装了Connection,大家来帮我看看是否可行
实现原理如下:
获得SqlConnection,如果不存在就new一个出来,然后将它存到Items中,以后直接从Items中取
public static SqlConnection GetConnection()
{
SqlConnection conn = (SqlConnection)HttpContext.Current.Items["SqlConnection"];
if(conn==null)
{
conn = new SqlConnection( "........." );
HttpContext.Current.Items["SqlConnection"] = conn;
}
return conn;
}
然后在Global中的Application_EndRequest执行关闭连接函数,防止忘记关闭的连接
public static void CloseConnection()
{
SqlConnection conn = GetConnection();
if(conn.State == ConnectionState.Open)
conn.Close();
}
大家帮我看看这样实现是否可性?有无不安全的隐患?是否会影响数据库效率?还有没有我没想到的可能发生的问题?