Практическое руководство. Обработка ошибок одновременного доступа
Обновлен: Ноябрь 2007
Можно перехватывать объект DBConcurrencyException для оказания помощи в разрешении проблем нарушения параллелизма. Объект DBConcurrencyException возвращает строку данных, вызвавшую ошибку. Дополнительные сведения содержатся в разделе Элементы DBConcurrencyException.
Ниже отображается пример попытки обновления источника данных содержимым NorthwindDataSet из блока try/catch; если происходит ошибка, возникает сообщение об ошибке вместе с первым столбцом вызвавшей неполадки строки данных.
Примечание. |
---|
Нижеприведенный код является иллюстрацией одной из стратегий, применяемой при обработке ошибки обновления базы данных. Код предполагает ряд допущений; существует подключение к базе данных, существует набор данных, также предполагается, что выполнение команды обновления будет вызывать нарушение параллелизма. Дополнительные сведения и полный пример содержатся в разделе Пошаговое руководство. Обработка исключения параллельности. |
Для устранения нарушения одновременного доступа выполните следующие действия:
Выполните команду обновления базы данных из блока try/catch.
Если появляется исключение, проверьте свойство Row инструкции catch для определения причины сбоя.
Добавьте к приложению код для устранения ошибки в соответствии с бизнес-правилами.
Следующий код использует CustomersTableAdapter и NorthwindDataSet как примеры адаптера и набора данных в приложении.
Try CustomersTableAdapter.Update(NorthwindDataSet) Catch ex As DBConcurrencyException Dim customErrorMessage As String customErrorMessage = "Concurrency violation" & vbCrLf customErrorMessage += CType(ex.Row.Item(0), String) MessageBox.Show(customErrorMessage) ' Add business logic code to resolve the concurrency violation... End Try
try { customersTableAdapter.Update(northwindDataSet); } catch (DBConcurrencyException ex) { string customErrorMessage; customErrorMessage = "Concurrency violation\n"; customErrorMessage += ex.Row[0].ToString(); // Add business logic code to resolve the concurrency violation... }
См. также
Основные понятия
Общие сведения об отображении данных
Другие ресурсы
Пошаговые руководства работы с данными
Подключение к данным в Visual Studio
Подготовка приложения к получению данных
Отображение данных на форме в приложениях Windows