Compartir a través de


Cómo: Controlar errores de simultaneidad

Actualización: noviembre 2007

Puede detectar el objeto DBConcurrencyException para ayudar a resolver problemas que surgen de las infracciones de concurrencia. El objeto DBConcurrencyException devuelve la fila de datos que causó el error. Para obtener más información, vea DBConcurrencyException (Miembros).

En el ejemplo siguiente, se intenta actualizar un origen de datos con el contenido de NorthwindDataSet desde un bloque try/catch. Si se genera un error, se muestra un mensaje de error además de la primera columna de la fila de datos infractora.

Nota:

El código siguiente es un ejemplo de estrategia para controlar un error de actualización de bases de datos. En el código se asumen varias premisas: una conexión existente con una base de datos, un conjunto de datos existente, así como la suposición de que la ejecución del comando de actualización provocará una infracción de concurrencia. Para obtener más información y un ejemplo completo, vea Tutorial: Controlar una excepción simultánea.

Para resolver una infracción de concurrencia

  1. Ejecute el comando para actualizar la base de datos desde un bloque try/catch.

  2. Si se inicia una excepción, compruebe la propiedad Row de la instrucción catch para determinar qué produjo la infracción.

  3. Agregue código para resolver el error basándose en las reglas de empresa de su aplicación.

    En el siguiente código, se utilizan CustomersTableAdapter y NorthwindDataSet como ejemplos del adaptador y del conjunto de datos de la aplicación.

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

Vea también

Conceptos

Lo nuevo en datos

Información general sobre la presentación de datos

Otros recursos

Tutoriales sobre datos

Conectarse a datos en Visual Studio

Preparar la aplicación para recibir datos

Buscar datos en la aplicación

Mostrar datos en formularios en aplicaciones para Windows

Modificar datos en la aplicación

Validar datos

Guardar datos