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:
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?[...] 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) [...]
Para hacerlo con un ExecuteReader yo lo haría preguntando si ".Read" , o si ".HasRows" , algo así:
Código:
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.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()
Espero haberme explicado. Gracias por la ayuda que me presteis.
Saludos a todos.