Code Bye

datatable查询改变后赋值

 

将DGV上的绑定值放入一个datatable1里面,提供查询功能,查询出来以后将同步更新DGV绑定的datatable,为datatable2,在这个datatable2上做修改以后,怎么将改变的值,返回到原来的datatable1里面,而datatable1里面其他的值不变,只有相应被改变的地方做了改变

求大神给点思路
轮训table2,一行行插入到table1
table2是原来table1里面有的数据,如果循环一行行插入的话,就有重复值,不需要重复值
如果这样子,那你还要datatable2干嘛,直接将datatable1赋给datatable2不就行了?
如果一定不能一个的话
var changes = dt.GetChanges();
//循环获取每行在原DataTable是哪一行
dt.Rows.RemoveAt(i);
dt.Rows.InsertAt(i)
需要原来的datatable1做查询,datatable2作用在显示,给人感觉是实时的在刷新界面一样
详细一点怎么循环呀
引用 5 楼 starfd 的回复:

如果一定不能一个的话

var changes = dt.GetChanges();
//循环获取每行在原DataTable是哪一行
dt.Rows.RemoveAt(i);
dt.Rows.InsertAt(i)

麻烦详细一点,不是很懂

40分
DataTable dt = new DataTable();
            DataTable dt2 = new DataTable()  ;
            var changes = dt2.GetChanges();
            foreach(DataRow row in changes.Rows)
            {
                for (var i = 0; i < dt.Rows.Count; i++)
                {
                    if (dt.Rows[i]["ID"].Equals(row["ID"]))
                    {
                        dt.Rows.RemoveAt(i);
                        dt.Rows.InsertAt(row, i);
                        break;
                    }
                }
            }
引用 7 楼 gongh_it 的回复:

详细一点怎么循环呀

Quote: 引用 5 楼 starfd 的回复:

如果一定不能一个的话

var changes = dt.GetChanges();
//循环获取每行在原DataTable是哪一行
dt.Rows.RemoveAt(i);
dt.Rows.InsertAt(i)

麻烦详细一点,不是很懂

感谢大师,已完成了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明datatable查询改变后赋值