我在看Shawn Wildermuth 写的《ADO.Net实用指南》书时作者说DataAdapter会自动调用DataSet的AcceptChanges()或 RejectChanges(),我的理解是当用DataApapter操纵DataSet修改数据库时如果成功就会调用AcceptChanges(),反之调用RejectChanges(),但在实际应用中我发现DataApapter并没有自动调用它们,所以我的代码一般这样写:......修改ds
try
{
    da.Update(ds,"表名");
    ds.AcceptChanges();
}
catch(Exception ex)
{
    ds.RejectChanges();
}
.....数据绑定
不知道大家有何高见?

解决方案 »

  1.   

    你是如何发现DataAdapter没有自动调用AcceptChanges方法的呢?请看.net框架文档中关于DataSet的Update方法的执行顺序说明:1、将 DataRow 中的值移至参数值。 
    2、引发 OnRowUpdating 事件。 
    3、执行命令。 
    4、如果该命令设置为 FirstReturnedRecord,返回的第一项结果将放置在 DataRow 中。 
    5、如果存在输出参数,它们将被放在 DataRow 中。 
    6、引发 OnRowUpdated 事件。 
    7、调用 AcceptChanges。