关于要求调用System.IDisposable.Dispose的问题
请高手指点,如何解决?
调用Acess数据库,生成程序后可以运行,但运行代码分析,却有这样的警告:
'Myconn' 对象未按所有异常路径释放。请在对 'Myconn' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。
'bjODDAdapter' 对象未按所有异常路径释放。请在对 'bjODDAdapter' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。
'dkODDAdapter' 对象未按所有异常路径释放。请在对 'dkODDAdapter' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。
请在对 'bjCMDBuilder' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。
请在对 'bjDT' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。
请在对 'dkCMDBuilder' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。
请在对 'dkDT' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。
请在对 'ds' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。
- VB.NET code
Dim Myconn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Timetable.jcf")Dim bjODDAdapter As New OleDb.OleDbDataAdapter("select * from [Biaoji]", Myconn)Dim bjCMDBuilder As New OleDb.OleDbCommandBuilder(bjODDAdapter)Dim ds As DataSet = New DataSetbjODDAdapter.Fill(ds, "Biaoji")Dim bjDT As DataTable = New DataTablebjDT = ds.Tables("Biaoji")If bjDT.Rows(1)(2).ToString = "Y" ThencbbGrade.Text = bjDT.Rows(1)(3)cbbClass.Text = bjDT.Rows(1)(4)cbbName.Text = bjDT.Rows(1)(5)Call Diaoke()ElseIf bjDT.Rows(2)(2).ToString = "Y" ThencbbGrade.Text = bjDT.Rows(2)(3)cbbClass.Text = bjDT.Rows(2)(4)cbbName.Text = bjDT.Rows(2)(5)Call Moren()ElseCall Kecheng()End IfMyconn.Dispose()bjODDAdapter.Dispose()[解决办法]
LZ可以在代码中加上try catch捕捉异常,应该myconn.close就不需要在bjODDAdapter.Dispose()
了,bjODDAdapter是依靠myconn创建的
[解决办法]
倒。。。
不是就不管它。