[英]SqlConnection object into ASP.NET SessionState object
我只是想知道我是否这样做:
Session["MyDbConnection"] = new SqlConnection("connectionString");
(Session["MyDbConnection"] as SqlConnection).Open();
当我导航到另一个页面时,我也可以这样做吗?:
(Session["MyDbConnection"] as SqlConnection).Close();
我不确定这是否可行,但是即使可行,这也是一个坏主意。 SqlConnection
是一个IDisposable
,仅应在using
语句内用作局部变量。
处置后,它将自动关闭并且可以使用连接池。
请注意Microsoft docs上“ SQL Server连接池”页面中的以下段落:
警告
强烈建议您在使用完连接后始终关闭该连接,以便将连接返回到池中。 为此,您可以使用任一Close
或Dispose
的方法Connection
对象,或打开所有连接的内部using
的语句在C#中,或Using
Visual Basic中的语句。 未显式关闭的连接可能不会添加或返回到池中。
使用SqlConnection
的正确方法是:
using(var con = new SqlConnection(connectionString))
{
using(var cmd = new SqlCommand(commandText, con)
{
// Add parameters if needed:
// cmd.Parameters.Add("name", SqlDbType.<some SqlDbType Member>).Value = <some value>
// Execute your command here and do whatever you need with it.
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.