Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: |Miguel| en 27 Abril 2012, 12:27 pm



Título: Identificar restricción que causa una excepción
Publicado por: |Miguel| en 27 Abril 2012, 12:27 pm
Hola a todos.

Estoy teniendo un problemilla. Os comento. Tengo un dataGrid asociado a un dataTable, de forma que el dataTable 'hereda' (por decirlo de alguna forma) las restricciones que tiene la tabla SQL de la que cargo los datos.

Todo funciona bien, cuando violo la restricción de clave primaria o cualquier otra me salta el error, pero lo que no sé es cómo identificar la restricción que ha hecho saltar la excepción, para sacar un mensaje distinto en cada caso.

Este es mi evento, y lo que quiero es un mensaje diferente para cada restricción violada, espero haberme explicado.

Código
  1.        MessageBox.Show("Errores en los datos. Revise lo siguiente por favor: " & vbCrLf & _
  2.                         " -El valor de 'stor_id' no se puede repetir." & vbCrLf & _
  3.                         " -Longitud de 'stor_id' de entre 1 y 4 caracteres." & vbCrLf & _
  4.                         " -Longitud de 'state' de entre  1 y 2 caracteres." & vbCrLf & _
  5.                         " -Longitud de 'city' de entre 1 y 19 caracteres.")
  6.    End Sub

Saludos.


Título: Re: Identificar restricción que causa una excepción
Publicado por: seba123neo en 27 Abril 2012, 15:01 pm
fijate, el mismo datagridview tiene un evento que maneja justamente cuando se lanza un error por alguna causa, no me aucerdo el nombre del evento, pero lo tiene seguro.


Título: Re: Identificar restricción que causa una excepción
Publicado por: |Miguel| en 27 Abril 2012, 15:49 pm
fijate, el mismo datagridview tiene un evento que maneja justamente cuando se lanza un error por alguna causa, no me aucerdo el nombre del evento, pero lo tiene seguro.
Sí, DataError
Ese es el que estoy usando para mostrar ese mensaje que os he puesto (quería haberlo copiado con el evento, se me ha ido el ratón...), pero no sé usarlo. Trastearé a ve si encuentro algo.
gracias
Saludos