Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2006, 06:18
Avatar de moNTeZIon
moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 5 meses
Puntos: 9
Duda con ExecuteNonQuery

Hola buenas,
Tengo una funcion que me devuelve las propiedades de un cliente.
A esta funcion, le paso un IDCliente y me devuelve los datos de ese cliente.
Lo hago ejecutando un procedimiento almacenado, pasándole un parámetro de entrada @IdCliente y me devuelve tantos parámetros de salida como propiedades tiene el cliente.
Así, luego recojo los valores de esta forma:
Código:
[...]
miConn.Open()
miCM.ExecuteNonQuery()
miConn.Close()
Dim misDetallesCliente As New DetallesCliente
misDetallesCliente.IDCliente = CInt(miCM.Parameters("@IDCliente").Value)
misDetallesCliente.Email = CStr(miCM.Parameters("@Email").Value)
[...]
El problema que tengo es que tras cerrar la conexión, y antes de empezar a recoger los valores de los parámetros, me gustraría saber si ha encontrado el registro o no. Cómo puedo comprobar eso con un ExecuteNonQuery?
Para hacerlo con un ExecuteReader yo lo haría preguntando si ".Read" , o si ".HasRows" , algo así:
Código:
miConn.Open()
Dim dR As SqlDataReader = miCM.ExecuteReader()
If dR.Read() Then
  Dim misDetallesCliente As New DetallesCliente
  misDetallesCliente.IDCliente = dR("IDCliente")
  misDetallesCliente.Email = dR("Email")
  [...]
End If
miConn.Close()
Pero con un ExecuteNonQuery no sé como comprobar si ha devuelto algun registro o no, para así, luego, poder evitar el error de acceder a un dato que no ha sido encontrado.
Espero haberme explicado. Gracias por la ayuda que me presteis.
Saludos a todos.
__________________
..:: moNTeZIon ::..