|
Try daCustomer.Update(dsAllData.Tables("Customer")) Catch dbcEx As Data.DBConcurrencyException Dim dResult As DialogResult dResult = MessageBox.Show(messageString, _ "Data Concurrency Exception Occurred", _ MessageBoxButtons.YesNoCancel, MessageBoxIcon.Error, _ MessageBoxDefaultButton.Button1, _ MessageBoxOptions.DefaultDesktopOnly) If dResult = DialogResult.Yes Then '两个选择:填充整个表或者刷新该行 'daCustomer.Fill(dsAllData.Tables("Customer")) UpdateRow("Customer", dbcEx.Row.Item("ID")) ElseIf dResult = DialogResult.No Then '保存新行的拷贝 Dim drCopy As DataRow, drCurrent As DataRow drCopy = dsAllData.Tables("Customer").NewRow() Dim dc As DataColumn drCurrent = dsAllData.Tables("Customer").Rows.Find(dbcEx.Row.Item("ID")) For Each dc In drCurrent.Table.Columns If dc.ReadOnly = False Then drCopy.Item(dc.ColumnName) = drCurrent.Item(dc.ColumnName) Next
'从数据库中获取当前值 UpdateRow("Customer", dbcEx.Row.Item("ID"))
'现在恢复用户输入的值并再次保存 For Each dc In drCurrent.Table.Columns If dc.ReadOnly = False Then drCurrent.Item(dc.ColumnName) = drCopy.Item(dc.ColumnName) Next
daCustomer.Update(dsAllData.Tables("Customer")) End If End Try |