日期:2014-05-19  浏览次数:20833 次

对datagridView的更新、删除、插入操作的记录
通过以下对DATAGRIDVIEW中的修改(删除、更新、插入)后的数据进行数据库更新
this.oleDbDataAdapter1.Update(this.dataSet1.Tables[0].GetChanges());
dataSet1.Tables[0].AcceptChanges();


this.dataSet1.Tables[0].GetChanges()返回更改后的DATASET。
我想将更改后的dataSet1后更改前的dataSet1进行比较

得到对原dataSet1的具体修改信息;
      比如对第2条记录的某字段,将值ABC改为ABCD
      对第三条记录进行了删除操作
      并插入了一条新的记录

用户对dataSet1进行的三次操作通过三次调用自定义函数LOG(STRING   ACTION)进行操作记录

或者是否能记录oleDbDataAdapter1的oleDbInsertCommand1、oleDbUpdateCommand1、oleDbDeleteCommand1执行来判定作了何种操作?




------解决方案--------------------
不用这么麻烦,dataset对数据表的每一行的数据都记录的有状态,可以用其来解决你的问题,但前提是不能GetChanges
------解决方案--------------------
SqlDataAdapter adapter = new SqlDataAdapter(sqlstr);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adapter);
if (ds.HasChanges())
{
adapter.Update(ds, tablename);
}
有这几句就可以批处理了
注意sqlstr必须是一个查询语句,并且必须要