日期:2014-05-18  浏览次数:20799 次

关于静态方法的疑问

我为了能从程序的任何地方都可以取数据库中的数据来使用,写了一个静态方法,用于从数据库中读入一张表的内容。如下:
  public static void ReadGSB()//从数据库中读出公司表
  {
  DataTable MyDT = new DataTable();
  OleDbDataAdapter myDA = new OleDbDataAdapter("select * from gsb order by gs_id", oleDbConn);
  myDA.Fill(MyDT);
  //这里是数据处理代码 省略。。。。
  MyDT.Clear();
  }
我想问:new出来的MyDT和myDA,使用完后 会不会自动被系统回收?
这样写是不是不太合理? 多次使用该方法会不会造成内存泄露?

------解决方案--------------------
MyDT 不需要,myDA 在方法结束前调用 Dispose, oleDbConn 如果是静态的就不用,如果是方法里创建的也要 Dispose 。
MyDT.Clear() 也不需要。