SqlDataAdapter.Update是否也更新了数据表?

时间:2011-06-16 13:48:57

标签: .net asp.net .net-3.5 ado.net

我的问题是,我想知道在使用数据表中的数据更新数据库后,数据表是否也会更新数据库中的最新信息。或者我必须做以下事情:

Dim newFilesAdptr As SqlDataAdapter = New SqlDataAdapter(newFilesCmd)
Dim newFilesBuilder As SqlCommandBuilder = New SqlCommandBuilder(newFilesAdptr)
Dim newFilesDataTable As DataTable = New DataTable
newFilesAdptr.Fill(newFilesDataTable)

'Some code

newFilesDataTable.Rows.Add(newFilesRow)
newFilesAdptr.Update(newFilesDataTable)

'Immediately get newest data
newFilesDataTable = Nothing
newFilesDataTable = New DataTable
newFilesAdptr.Fill(newFilesDataTable)

1 个答案:

答案 0 :(得分:1)

否 - 数据未从DB同步回内存数据表。它有效地将数据表中的数据(以及仅数据)与实际数据库同步。

此方法读取表中每个数据行的rowstate,并将相应的操作(更新,插入,删除)应用于数据库以反映更改。

通过DataAdapter成功调用Update后,可以调用DataTable.AcceptChanges()将行状态重置为表中所有行的未更改状态,清除所有已删除的行并有效地将数据表中的行与数据库中的行同步虽然数据库中的新数据未加载回数据表。