我有这么一段代码:
datatable pv=DataSet.Table["a"];
datagirdview1.datasource=pv;
pv=DataSet.Table["b"];
comboBox1.datasource=pv;现改为:
datatable pv=DataSet.Table["a"];
dataview dv=new dataview(pv);
datagirdview1.datasource=dv;
pv=DataSet.Table["b"];
dv=new dataview(pv)
comboBox1.datasource=dv;我的问题是第一段code中设置datasoruce后,实际上控件已经和表绑定,因此,变量pv再次赋值不影响绑定。不知道我这样理解的有没有错?
我的第二段code中pv是不是也是这种情形,这样还有一个问题就是,我的datatable有name因此我可以每次覆盖,而dataview没有,那么每次dv=new dataview(pv)就创建一个新的dataview,那岂不是内存越来越多,如何才能覆盖dataview,或回收后再建?
datatable pv=DataSet.Table["a"];
datagirdview1.datasource=pv;
pv=DataSet.Table["b"];
comboBox1.datasource=pv;现改为:
datatable pv=DataSet.Table["a"];
dataview dv=new dataview(pv);
datagirdview1.datasource=dv;
pv=DataSet.Table["b"];
dv=new dataview(pv)
comboBox1.datasource=dv;我的问题是第一段code中设置datasoruce后,实际上控件已经和表绑定,因此,变量pv再次赋值不影响绑定。不知道我这样理解的有没有错?
我的第二段code中pv是不是也是这种情形,这样还有一个问题就是,我的datatable有name因此我可以每次覆盖,而dataview没有,那么每次dv=new dataview(pv)就创建一个新的dataview,那岂不是内存越来越多,如何才能覆盖dataview,或回收后再建?
第二个问题你可以用pv.DefaultView代替new DataView(),就不会象你说的那样无限创建了
另外创建DataView的方式可以这样
DataView view=new DataView(datatablename)
或者DataView view=datatablename.DefauleView在创建之前可以先这样声明对象
DataView view=null 再实例化
结束之后不需用时可以讲表内存释放 DataView=null 或者DataTable=null
如果只是数据的清空可以 Datatable.Clear()
为题在于DataView=null是不是把表上的所有dataview都清了?我只是想清其中一个。
另外创建DataView的方式可以这样
DataView view=new DataView(datatablename)
或者DataView view=datatablename.DefauleView 在创建之前可以先这样声明对象
DataView view=null 再实例化
结束之后不需用时可以讲表内存释放 DataView=null 或者DataTable=null
如果只是数据的清空可以 Datatable.Clear()
我用DataView view=new DataView(datatablename) 创建了一个dataview,然后绑定
DataView view=new DataView(datatablenameA);
datagridview1.datasoruce=view;
view=new DataView(datatablenameB);
datagridview2.datasoruce=view;以上代码是可以运行的,datagridview2绑定到由datatablenameB创建的视图,并不影响到datagirdview1绑定的由datatablenameA创建的视图。我认为语句datagridview1.datasoruce=view;运行后,datagridview1已经绑定到视图上,因此view再次赋值不影响datagridiew1的数据。因此就存在这样一个问题:我不知道由语句DataView view=new DataView(datatablenameA);创建的视图能够存活多久?因为它已经和变量无关了,如果我在另外一个form中也调用了由datatablenameA创建的视图,这使得我无法对datatable上的视图全部清除,因此我如何清除由datatablename1生成的视图view?谢谢!
DataView view=new DataView(datatablename)
后
view=null并不能清除说创建的dataview,dataview仍然创造内存不知道是不是?