VB2010使用Access2007作爲後端。我正在創建一個DataSet併爲其添加多個DataTable並填充它們。大多數表格都有少量記錄,但可以有多達100萬條記錄。當我發出我的.Update命令時,是否有任何方法來獲取它所在的位置,以便我可以讓用戶知道它已完成x%更新?DataAdapter更新方法進度狀態
它工作的很好,但應用程序掛起,而進行更新。
RowsUpdated = daNewParts.Update(dsInventory, "NewParts")
VB2010使用Access2007作爲後端。我正在創建一個DataSet併爲其添加多個DataTable並填充它們。大多數表格都有少量記錄,但可以有多達100萬條記錄。當我發出我的.Update命令時,是否有任何方法來獲取它所在的位置,以便我可以讓用戶知道它已完成x%更新?DataAdapter更新方法進度狀態
它工作的很好,但應用程序掛起,而進行更新。
RowsUpdated = daNewParts.Update(dsInventory, "NewParts")
的OleDbDataAdapter的有兩個事件稱爲RowUpdated和RowUpdating,你可以用它來接收當行已經更新通知或更新事件之前進行。
AddHandler daNewParts.RowUpdated, New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
Sub OnRowUpdated(ByVal sender As Object, ByVal args As OleDbRowUpdatedEventArgs)
.....
End Sub
這僅僅是問題的第一部分,現在你需要知道多少行會被更新,當您開始操作。這可以得到調用正在更新
Dim count As Integer
Dim changedData = dsInventory.Tables("NewParts").GetChanges()
if changedData IsNot Nothing Then
count = changedData.Rows.Count
End If
現在你可以建立你的進度條
ahh yes謝謝。我搜索了一段時間,但不知道要尋找什麼關鍵詞。與您的示例和MSDN http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.rowupdated%28v=vs.100%29.aspx我能夠實現。 – sinDizzy 2013-04-08 22:09:37
允許批量處理和處理這對於每一批HTTP解僱了'RowUpdated'事件在數據表GetChanges:// msdn.microsoft.com/en-us/library/aadf8fk2.aspx – 2013-04-08 21:55:54