dt0.Rows.InsertAt(newrow,0)也没有用!
我不知道大家有没有用过这个方法,有用吗?
我不知道大家有没有用过这个方法,有用吗?
解决方案 »
- 使用ManualResetEvent时,偶尔SET后方法没有被激活
- ico图片为什么有时没有显示在主程序上呢
- C#什么叫类
- 有没有三种可能的变量,除了表示true和false外,还表示另一种可能情况,比如null。
- 用Dataset更新access时出现 outofmemory 错误
- 文本匹配问题,高手请来看看
- 请教关于mstts(ms text-to-speech)中语音的语言问题
- 叫号系统重号问题
- C#的GetHashCode与JAVA的不对应,如何解决
- C#完全手册文件操作示例不能编译通过,帮帮我
- 新手问题第八贴--------format 地用法,如何理解哦。
- C# to HTML,免费软件!
由 InsertAt 指定的位置只按照 DataRowCollection 中行的顺序反映。如果在 DataRow 数组中返回了多行,则插入的行可能不会返回到 InsertAt 指定的位置。例如,Rows 属性在指定的插入位置中返回该行,而 Select 和 GetChildRows 却不可能不会。当您将 DataRowCollection 的内容写成 XML(例如,WriteXml)时,行按照由 DataRowCollection 指定的顺序编写。
所以你重新绑定的顺序和你插入的顺序不同。
你可以试试在后面加一个更新数据库的语句或者先把它转换成XMl,然后再读取(麻烦点);一点建议,希望能给你点启发。我机器框架不好使,故无法测试。
newrow[0]="";
newrow[1]="";
dt0.Rows.InsertAt(newrow,dg0.CurrentRowIndex);
//关键
dt0.AcceptChanges();dg0.DataSource=dt0;
我用的一种方法,一张表,假设已有10行数据,需要在第五行数据上插入一行
做一张当前表的克隆表,将前4行数据导入到克隆表,插入新行,然后将后六行数据导入克隆表,用克隆表的数据更新原表,
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);
挺好呀,没有问题呀。
是不是DataView在默认情况下进行了排序。
所以楼上的就没有问题。
谢谢,请到以下帖子领分,这里分太少了。
http://expert.csdn.net/Expert/topic/2432/2432332.xml?temp=.7855188