Поделиться через


Практическое руководство. Обработка ошибок одновременного доступа

Обновлен: Ноябрь 2007

Можно перехватывать объект DBConcurrencyException для оказания помощи в разрешении проблем нарушения параллелизма. Объект DBConcurrencyException возвращает строку данных, вызвавшую ошибку. Дополнительные сведения содержатся в разделе Элементы DBConcurrencyException.

Ниже отображается пример попытки обновления источника данных содержимым NorthwindDataSet из блока try/catch; если происходит ошибка, возникает сообщение об ошибке вместе с первым столбцом вызвавшей неполадки строки данных.

y8fyz6xy.alert_note(ru-ru,VS.90).gifПримечание.

Нижеприведенный код является иллюстрацией одной из стратегий, применяемой при обработке ошибки обновления базы данных. Код предполагает ряд допущений; существует подключение к базе данных, существует набор данных, также предполагается, что выполнение команды обновления будет вызывать нарушение параллелизма. Дополнительные сведения и полный пример содержатся в разделе Пошаговое руководство. Обработка исключения параллельности.

Для устранения нарушения одновременного доступа выполните следующие действия:

  1. Выполните команду обновления базы данных из блока try/catch.

  2. Если появляется исключение, проверьте свойство Row инструкции catch для определения причины сбоя.

  3. Добавьте к приложению код для устранения ошибки в соответствии с бизнес-правилами.

    Следующий код использует 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

Редактирование данных в приложении

Проверка данных

Сохранение данных