DataTable 更新数据库的原理是通过 行状态与行版本 来决定如何更新数据库的。建议你查询一下MSDN:
RowState 值 说明
Unchanged
自上次调用 AcceptChanges 之后,或自 DataAdapter.Fill 创建了行之后,未做出过任何更改。
Added
已将行添加到表中,但尚未调用 AcceptChanges。
Modified
已更改了行的某个元素。
Deleted
已将该行从表中删除,并且尚未调用 AcceptChanges。
Detached
该行不属于任何 DataRowCollection。新建行的 RowState 设置为 Detached。通过调用 Add 方法将新的 DataRow 添加到 DataRowCollection 之后,RowState 属性的值设置为 Added。
对于已经使用 Remove 方法(或是在使用 Delete 方法之后使用了 AcceptChanges 方法)从 DataRowCollection 中移除的行,也设置为 Detached。
简单说明一下:
DataTable.Rows.Add()方法执行后,更新数据库会做insert操作;
DataTable.Rows[0][0] = "aaa";方法执行后,更新数据库会做update操作;
DataTable.Rows[0].Delete() ;方法执行后,更新数据库会做delete操作;
我想你用的是直接在DataTable中编辑,然后把修改的值更新或插入到DataTable 中。
DataTable有很多单元格Changed,行Changed .....的Changed、changing 属性,搜搜 很多的。