Compartilhar via


Como: Manipular erros de simultaneidade

Você pode pegar o objeto DBConcurrencyException para auxiliar na resolução de problemas decorrentes de violações de simultaneidade.O objeto DBConcurrencyException retorna a linha de dados que ocasionou o erro.Para obter mais informações, consulte Membros DBConcurrencyException.

O exemplo a seguir tenta atualizar uma fonte de dados com o conteúdo do NorthwindDataSet de dentro de um bloco try/catch, se um erro for gerado uma mensagem de erro é exibida junto com a primeira coluna da linha de dados afetada.

Observação:

O código abaixo é uma ilustração de uma estratégia para tratar um erro de atualização do banco de dados.O código pressupõe várias coisas; uma conexão existente para um banco de dados, a existência de um dataset, bem como a suposição que o comando de execução da atualização será gerado numa violação de concorrência.Para obter mais informações e um exemplo completo, consulte Demonstra Passo a passo: Manipulando uma exceção concorrente.

Para resolver uma violação de concorrência

  1. Execute o comando para atualizar o banco de dados de dentro de um bloco try/catch.

  2. Se uma exceção é gerada, inspecione a propriedade Row da instrução catch para determinar o que causou a violação.

  3. Adicione código para resolver o erro com base nas regras de negócio do aplicativo.

    O código a seguir usa um CustomersTableAdapter e NorthwindDataSet como exemplos de adaptador e dataset em seu aplicativo.

    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...
    }
    

Consulte também

Conceitos

O que Há de Novo em Dados

Exibindo visão geral de dados

Outros recursos

Explicações Passo a passo sobre Dados

Conectando-se a Dados no Visual Studio

Preparando seu aplicativo para receber dados

Buscando dados em seu aplicativo

Exibindo dados em formulários em aplicativos do Windows

Editar dados no seu aplicativo

Validando Dados

Salvando dados