DataAdapter更新方法进度状态

时间:2013-04-08 21:52:52

标签: vb.net ms-access dataset hang insert-update

VB2010使用Access2007作为后端。我正在创建一个DataSet并向其添加几个DataTable并填充它们。大多数表都有少量记录,但最多只有一百万条记录。当我发出我的.Update命令时,有没有办法获取它所处的状态,这样我就可以让用户知道它的x%已完成更新?

效果很好,但应用程序会在更新时挂起。

RowsUpdated = daNewParts.Update(dsInventory, "NewParts")

1 个答案:

答案 0 :(得分:2)

OleDbDataAdapter有两个名为RowUpdatedRowUpdating的事件,可用于在更新行或更新事件之前接收通知。

AddHandler daNewParts.RowUpdated, New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)

Sub OnRowUpdated(ByVal sender As Object, ByVal args As OleDbRowUpdatedEventArgs)
   .....
End Sub

这只是问题的第一部分,现在您需要知道在开始操作时将更新多少行。这可以通过在要更新的DataTable上调用GetChanges来获得

Dim count As Integer
Dim changedData = dsInventory.Tables("NewParts").GetChanges()
if changedData IsNot Nothing Then
   count = changedData.Rows.Count
End If

现在您可以构建进度条