日期:2014-05-17  浏览次数:20598 次

数据库连接的释放资源问题?
代码如下:
1.函数
public static DataTable AddList()
{
        getCon();
        string sqlstr = "select * from table1";
        SqlDataAdapter sda = new SqlDataAdapter(sqlstr, getCon());
        DataTable dt = new DataTable();
        sda.Fill(dt);
        return dt;
    }
2.调用:
        if (!IsPostBack)
        {
            GridView1.DataSource = Feedback.AddList();
            GridView1.DataBind();

        }
现在有点糊涂了,这样写代码是否没有释放资源,如果没有的话,应该如何修改呢?

------解决方案--------------------
conn不用关闭?
------解决方案--------------------

public static DataTable AddList()
 {
         getCon();
         string sqlstr = "select * from table1";
         SqlDataAdapter sda = new SqlDataAdapter(sqlstr, getCon());
         DataTable dt = new DataTable();
         sda.Fill(dt);
         closeCon();自己写关闭con
         return dt;
     }

------解决方案--------------------
 SqlDataAdapter sda = new SqlDataAdapter(sqlstr, getCon());
用using扩起来就不用担心资源没释放了
------解决方案--------------------
引用:
 SqlDataAdapter sda = new SqlDataAdapter(sqlstr, getCon());
用using扩起来就不用担心资源没释放了


还有SqlConnection要关闭

------解决方案--------------------
用using吧
------解决方案--------------------
using(var conn=GetConn)
{
.....
}

另外学学分层 如三层