这跟加不加try没有任何关系
加try只不过是为了捕获异常,使程序发生异常时能够进入catch而不是直接报个系统错误然后挂掉
你可以把变量声明放到try外面,用try,catch,finally,在finally里释放
也可以用
using(变量声明)
{
代码块
}

解决方案 »

  1.   

    再说Dataset是托管资源,不需要你手动执行dispose()
      

  2.   

    把变量声明放到外面:Dataset  aaa; 
    try
     {
       aaa=GetDT(sql);
    }使用usingtry
     {
       using(Dataset  aaa; =GetDT(sql))
    {
    }
    }
      

  3.   


    DataSet ds = null;
      using (ds = new DataSet())
                {
                }
      

  4.   

    放在finally{}
    中可以释放try语块中的资源
      

  5.   

    用完把Dataset给null(aaa = null),垃圾回收器会收集的
      

  6.   

    c# 中托管资源不需要你收到释放,这跟try没有关系。如果非要dispose
    就加个finally{aaa.dispose()},finally块中代码不管有没有catch都会执行