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

|M| 为什么我的DataTable new DataView(dt) 后Table的数据不见了 快快
DataView   dv   =   new   DataView(dt);
这里可以得到20行的数据
然后我删除dv只剩4行
for   (Int32   i   =   dv.Count   -   1;   i   > =   3;   i--)
{                        
          dv.Delete(i);
}

再用
DataView   dv1   =   new   DataView(dt);
这时dv1就只有4行了
我没有删除dt的行啊.我只删除了dv的行

怎么办啊我dv1要怎么取得原有的dt的Dataview

谢谢

------解决方案--------------------
这个是间接删除了datatable中的数据.(看看数据类型方面的知识,引用类型,数值类型之间的区别就明白了)

你可以拷贝一个datatable 再用这个拷贝的去 new dataview (newDataTable)
------解决方案--------------------
你这样删除 实际是 删除了 引用的数据源的数据.

DataView dv = new DataView(dt.Copy());


------解决方案--------------------
你删除dv的数据会把它引用的datatable删除的

------解决方案--------------------
引用类型的数据问题.
你对DataView dv的操作实际上就是对dt做了操作