DataTable disposed 以后,为什么 DataView 还有数据
DataTable disposed 之后,为什么 DataView 还有数据?DataView view table.DefaultViewtable.disposed()
DataTable disposed 之后,为什么 DataView 还有数据? DataView view = table.DefaultView; table.disposed(); 为什么 view 还有数据?[解决办法] 基本的常识问题。 Dispose()的作用是释放非托管的资源。同时向这个对象宣告,我不再使用你了。 它没有清除数据、自动销毁之类的作用。 在调用Dispose()之前,务必确保这个对象已经不再被使用。[解决办法]
探讨 DataView view = table.DefaultView; table.disposed(); 为什么 view 还有数据?[解决办法] 你的理解好像有些问题。一楼说的很明白Dispose()的作用是释放非托管的资源
而你所说的Dispose(boolean)是MarshalByValueComponent的一个function,的确可以选择性释放。
问题是你没有call Dispose(boolean),你call的 table.Dispose(); 而且table本身是不能call .Dispose(boolean)的, 它只能被重写。
table是托管资源,call了dispose并没有任何实质性的作用。一般情况下,托管资源在栈(gen0)满了以后自动释放。
[解决办法] 你用的是dataset绑定到dataview中的吧,dispose只是释放数据库连接,会清空sqldatareader中的数据。dataset存储在客服端机器的内存中所以不能被释放的。
[解决办法] 你帖出来片断代码 没有用啊
C# code// Implement IDisposable.// Do not make this method virtual.// A derived class should not be able to override this method.public void Dispose(){ Dispose(true);[解决办法] 你都移除了数据操作,怎么还会有数据……[解决办法] 探讨 ......在与 GridView 数据源绑定,看看数据是不是还在[解决办法] 我只是指出你的疑问很可能是由于没有弄清楚对象生命周期, 你看看上面的讨论根本就没有意义, (其实,对于dispose干什么,根本不用咬文嚼字,微软MSDN说的在明了不过了)所以建议你贴出一个简单的demo来说明你的疑问, 看看我估计的是不是正确的, 然后你再来给我扣帽子