VB2010使用Access2007作为后端。我正在创建一个DataSet并向其添加几个DataTable并填充它们。大多数表都有少量记录,但最多只有一百万条记录。当我发出我的.Update命令时,有没有办法获取它所处的状态,这样我就可以让用户知道它的x%已完成更新?
效果很好,但应用程序会在更新时挂起。
RowsUpdated = daNewParts.Update(dsInventory, "NewParts")
答案 0 :(得分:2)
OleDbDataAdapter有两个名为RowUpdated和RowUpdating的事件,可用于在更新行或更新事件之前接收通知。
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
现在您可以构建进度条