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

求助:在一个函数中怎么关闭另一个函数中的对象?
有个连接数据库的函数如下:

private static SqlCommand Connect(string procedureName, SqlParameter[] parms)
{
            //省略部分代码
            SqlConnection con = new SqlConnection(conStr);
            con.Open();
            SqlCommand cmd = new SqlCommand(procedureName, con);
            //省略部分代码
            return cmd;
}

在其他操作数据库的函数中都会调用到上面的Connect,比如:

public int RunProc(string procedureName, SqlParameter[] parms, out DataTable dt)
{
            SqlDataAdapter ada = new SqlDataAdapter();
            ada.SelectCommand = Connect(procedureName,parms);
            //省略部分代码
}


问题是怎么在RunProc方法中关闭Connect方法里的数据库连接并释放资源?



------解决方案--------------------
将con定义成成员变量
在RunProc编写
(con as IDispose).Dispose();
------解决方案--------------------
ada.SelectCommand.Connection.Close();


            ada.SelectCommand.Connection.Dispose();