Datatable.acceptchanges()将数据提交到表

|| Datatable.acceptchanges将数据提交到表...意味着 它将数据插入表..或datatable吗?     
已邀请:
AcceptChanges()的目的是让DataTable知道其数据已保存到数据库。 DataTable中的所有DataRows的row.RowState设置为DataRowState.Unchanged。 它不会将数据保存到数据库。那是分开完成的。     
这里是文档:   调用AcceptChanges时,任何   DataRow对象仍处于编辑模式   成功结束其编辑。的   DataRowState也更改:全部添加   并且修改后的行将保持不变,   和已删除的行将被删除。      通常,AcceptChanges方法是   您之后在DataTable上调用   尝试使用更新数据集   DbDataAdapter.Update方法。 因此,您的实际数据库不受影响。     
只会影响数据表。没有任何数据库表。     
就我而言,这是由数据库中的自动编号字段引起的,我建议如下 调用数据适配器的更新方法 通话更新 ///用于自动编号列 调用数据表的acceptchanges 然后通过oledbadapter重新填充表格。如果u不需要自动编号字段,请勿在oledbadapter的deletecommand中将其添加为参数     
有人选择操纵数据表中的数据,例如删除某些行或将所有名称都大写挂起。删除
NULL
等。
AcceptChanges
只是将这些更改保存到数据表中。 如果要提交更改,则需要使用数据适配器或使用其他方法从数据表中的数据行获取数据并提交更改。     
好的-如果我拥有此权限,则显式调用DT.CommitChanges()将所有行设置为UNCHANGED。如果是这样,那么在调用DA.UPDATE(DT)时,对数据表所做的任何更改都将被忽略。 如此看来,对于那些您不想到达数据库的更改,只应调用DT.CommitChanges()。 因此,无论是否进行CommitChanges调用,更改都必须将其更改为.NET数据表,但是要获取对数据库表的更改,请在执行DA.Update之前不要调用CommitChanges。当然,这意味着必须调用DA.Update才能将更改实际推送到数据库中。     

要回复问题请先登录注册