dt0.Rows.InsertAt(newrow,0)也没有用!
我不知道大家有没有用过这个方法,有用吗?

解决方案 »

  1.   

    框架文档原文如下:
    由 InsertAt 指定的位置只按照 DataRowCollection 中行的顺序反映。如果在 DataRow 数组中返回了多行,则插入的行可能不会返回到 InsertAt 指定的位置。例如,Rows 属性在指定的插入位置中返回该行,而 Select 和 GetChildRows 却不可能不会。当您将 DataRowCollection 的内容写成 XML(例如,WriteXml)时,行按照由 DataRowCollection 指定的顺序编写。
    所以你重新绑定的顺序和你插入的顺序不同。
    你可以试试在后面加一个更新数据库的语句或者先把它转换成XMl,然后再读取(麻烦点);一点建议,希望能给你点启发。我机器框架不好使,故无法测试。
      

  2.   

    DataRow newrow=dt0.NewRow();
    newrow[0]="";
    newrow[1]="";
    dt0.Rows.InsertAt(newrow,dg0.CurrentRowIndex);
    //关键
    dt0.AcceptChanges();dg0.DataSource=dt0;
      

  3.   

    insertAt没有用,这是肯定的!
    我用的一种方法,一张表,假设已有10行数据,需要在第五行数据上插入一行
    做一张当前表的克隆表,将前4行数据导入到克隆表,插入新行,然后将后六行数据导入克隆表,用克隆表的数据更新原表,
      

  4.   

    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn("text", typeof(string)));
    dt.Columns.Add(new DataColumn("value", typeof(string)));
    DataRow dr;
    for (int i = 0; i < 2; i++) {
       dr = dt.NewRow();
       dr[0] = "aa";
       dr[1] = "bb"; 
       dt.Rows.InsertAt(dr, 0);
    }
    Console.WriteLine(dt.Rows.Count);
    挺好呀,没有问题呀。
      

  5.   

    我有点明白了。
    是不是DataView在默认情况下进行了排序。
    所以楼上的就没有问题。
      

  6.   

    pgj(盼盼蛋奶茶) 
    谢谢,请到以下帖子领分,这里分太少了。
    http://expert.csdn.net/Expert/topic/2432/2432332.xml?temp=.7855188