DataGridView.DataSource=dt;请问能不能“dt.Dispos();”在下试了试,只要一“dt.Dispos();”,DataGridView就不在显示数据了,请问这是什么原因?如果不“dt.Dispos();”,是不是将占用很多资源?

解决方案 »

  1.   

    DataGridView.DataSource=dt;
    DataGridView.DataBing();//在这句话之后就可以执行
    dt.Dispos();了
      

  2.   


    猴哥你好,在下是Winform。貌似在绑定之后立即释放也不行啊?
    [color=#FF0000]DGV绑定后,一释放它里面就没数据了。
    [/color]
      

  3.   

    一旦有引用,就不会释放的。GC工作原理先判断这个对象是否在使用中。
    DataGridView.DataSource 引用了DataTable就不会释放。
    直到Form被关闭。所以在Form_Closing里释放DataTable比较好。
    当然不主动调用DataTable.Dispose的话,GC也会清理的。至于,耗不耗资源,那看DataTable大不大了。很大的话,应该考虑分页等
    其他手段了。
      

  4.   

    一旦有引用,就不会释放的。GC工作原理先判断这个对象是否在使用中。
    DataGridView.DataSource 引用了DataTable就不会释放。
    直到Form被关闭。所以在Form_Closing里释放DataTable比较好。
    当然不主动调用DataTable.Dispose的话,GC也会清理的。至于,耗不耗资源,那看DataTable大不大了。很大的话,应该考虑分页等
    其他手段了。
      

  5.   

    垃圾回收器跟踪并回收托管内存中分配的对象,定期执行垃圾回收以回收分配给没有有效引用的对象的内存
    已使用
    清空datagridview
    datagridview.datasource = null;
    大数据量分页查询数据绑定