对于非托管资源代码,我们应该进行手动释放资源。SqlConnection.Close(); SqlCommand.Close(); SqlDataReader.Close();以上是调用各个类的Close()方法,以释放资源。还有另一种方法,使用using语句using(SqlConnection connection = new SqlConnection(connString)) { //利用using语句的话,就不用手动释放connection对象的资源了。因为它会在using语句末尾自动释放资源。使用using语句的对象必须实现IDisposable接口 }
什么时候想用连接,就直接用sqlconnection private static SqlConnection connection; public static SqlConnection Connection { get { string strConn = System.Configuration.ConfigurationManager.AppSettings["connecionstring"].ToString(); if (connection == null) { connection = new SqlConnection(strConn); connection.Open(); } else if (connection.State == System.Data.ConnectionState.Closed) { connection.Open(); } else if (connection.State == System.Data.ConnectionState.Broken) { connection.Close(); connection.Open(); } return connection; } }
对数据库操作的方法中你还得写一个断开连接并释放资源的方法 执行完一次DAL后,都调用一下
SqlConnection.open()的代码我手动写过,.close()的要不要自己写?
不用自己写SqlConnection.close()的方法?
string constr = ConfigurationManager.ConnectionStrings["conName"].ConnectionString; public void getDate() { using (SqlConnection con = new SqlConnection(constr)) { 自动释放资源,不用自己写SqlConnection.close()的方法了 } }
sqlconntion.close()ada填充类的组件,会自己处理open和close的
SqlCommand.Close();
SqlDataReader.Close();以上是调用各个类的Close()方法,以释放资源。还有另一种方法,使用using语句using(SqlConnection connection = new SqlConnection(connString))
{
//利用using语句的话,就不用手动释放connection对象的资源了。因为它会在using语句末尾自动释放资源。使用using语句的对象必须实现IDisposable接口
}
private static SqlConnection connection;
public static SqlConnection Connection
{
get
{
string strConn = System.Configuration.ConfigurationManager.AppSettings["connecionstring"].ToString();
if (connection == null)
{
connection = new SqlConnection(strConn);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
执行完一次DAL后,都调用一下
SqlConnection.open()的代码我手动写过,.close()的要不要自己写?
不用自己写SqlConnection.close()的方法?
public void getDate()
{
using (SqlConnection con = new SqlConnection(constr))
{
自动释放资源,不用自己写SqlConnection.close()的方法了
}
}