要在得到的dataset中进行指定行的排序
比如我要求把第三行放到最上面,该怎么实现?
我用以下方法,第一次就可以,但第一次以后结果就不对
dr = dsThis.Tables[0].Rows.NewRow();
dr.ItemArray = dsThis.Tables[0].Rows[3].ItemArray; 
this.dsThis.Tables[0].Rows.InsertAt(dr,0);
好像在NEW的时候他就有给我在dataset里添加了行,导致每次(除第一次外)得到的第三行都不是真正的第三行的值。
要实现要求该怎么做?

解决方案 »

  1.   

    哦,我少粘了一句
    dr = dsThis.Tables[0].Rows.NewRow();
    dr.ItemArray = dsThis.Tables[0].Rows[3].ItemArray; 
    this.dsThis.Tables[0].Rows.RemoveAt(3);
    this.dsThis.Tables[0].Rows.InsertAt(dr,0);
    我要把第三条记录放到最上面,就要先把第三条记录赋给一个datarow对象,然后删除第三条纪录,然后把这个datarow对象插入到 第一条的位置。
    但是我这样好像不对
    谁给我一个正确的方法
      

  2.   

    为什么不用DataView排序?this.DataSet1.Tables[0].DefaultView.Sort = "Name Desc";this.DataGrid1.DataSource = this.DataSet1.Tables[0].DefaultView;this.DataGrid1.DataBind();
      

  3.   

    修改之后一般都要加一句dsThis.AcceptChanges();来确认保存修改,你试试看