注册 登录
编程论坛 C# 论坛

释放了为什么还能返回结果,结果跟不释放一样,为什么?

sunyd 发布于 2015-04-16 15:41, 468 次点击
public DataSet RunProcReturn(string procName, SqlParameter[] prams,string tbName)
{
    SqlDataAdapter dap=CreateDataAdaper(procName, prams);
    DataSet ds = new DataSet();
    dap.Fill(ds,tbName);
    //加上以下两行代码依然能有返回值,为什么啊?
    dap.Dispose();
    ds.Dispose();
    this.Close();
    //得到执行成功返回值
    return ds;
}

我加了2行代码依然能够执行,为什么啊??
2 回复
#2
over12302015-04-17 13:09
你这种方式是处于非连接方式的查询,相当于把查询出来的数据填到了ds里面,此处ds相当于变量,值给他后,就不会管给它值的对象的值了。
用sqlcommand 主是处于连接状态的查询,关闭后值就没了。
#3
sun2824307242015-04-20 13:37
楼主加油.新手路过
1