dataset 中如何排序

问:
dataset 中如何排序?
  将dataset绑定到datagrid,现需要将dataset根据某属性重新排序,该如何实现?
业务要求在dataset中排序,不能在datagrid排序
______________________________________________________________________________________________
答1:
使用dataview
______________________________________________________________________________________________
答2:
dataset.Tables[0].DefaultView.Sort="字段名"
______________________________________________________________________________________________
答3:
同意以上几位
______________________________________________________________________________________________
答4:
不论用dataview 还是defaultview 得到的只是排序后的视图,也就是说dataset.table[0]这个标的排序状况还是没有改变的,我希望能够得到排序结构发生改变的table.
______________________________________________________________________________________________
答5:
那就把DataView存放在ViewState中

或者连接数据库,不过效率很低。
______________________________________________________________________________________________
答6:
如果不用dataview的话,那只能用sql语句了,dataset和datatable都不能排序,如果要让其结构发生变化只有重新填充了
______________________________________________________________________________________________
答7:
楼上说的一定对,我向毛主席保证!
______________________________________________________________________________________________
答8:
重新填充
______________________________________________________________________________________________
答9:
from yistudio(绿荫) :"dataset和datatable都不能排序,如果要让其结构发生变化只有重新填充了",给我很大启发,那么我采用如下做法:
DataSet ds = new DataSet();
   UserInfoManager.Instance.GetAllUserInfos(ds);
   DataRow [] rows = ds.Tables[0].Select("","UnitID desc");
   DataTable table = ds.Tables[0].Clone();
   for(int i =0 ; i < rows.Length ; i++)
   {
    DataRow row = table.NewRow();
    row.ItemArray = rows[i].ItemArray;
    table.Rows.Add(row);
   }
                           //此处在对table 进行其他操作,比如从另一个表添加列
   DataGrid1.DataSource = table;
   DataGrid1.DataBind();
这样是实现了排序,但有没有更好的方法?
______________________________________________________________________________________________
答10:
靠,好人做到底了
dataset.Tables[0].DefaultView.Sort="UnitID";
DataGrid1.DataSource = dataset.Tables[0].DefaultView;
DataGrid1.DataBind();

______________________________________________________________________________________________
答11:
呵呵,to bjy_ly(竹雨流云):
   你的方法只是得到视图拉,不能改变table的排序结构了。感觉yistudio(绿荫)说得对哦,
只能重新添加了
______________________________________________________________________________________________
答12:
建立一个新的datatable,数据来源于排序后的dataview

posted on 2007-09-27 10:07  JEEF WANG  阅读(1615)  评论(0编辑  收藏  举报

导航