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
Ejecute el comando para actualizar la base de datos desde un bloque try/catch.
Si se inicia una excepción, compruebe la propiedad Row de la instrucción catch para determinar qué produjo la infracción.
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
Información general sobre la presentación de datos
Otros recursos
Conectarse a datos en Visual Studio
Preparar la aplicación para recibir datos
Mostrar datos en formularios en aplicaciones para Windows