ExecuteNonQuery devuelve un valor incorrecto

10/05/2006 - 19:43 por Squiur | Informe spam
quiero saber si un registro existe en un tabla y aplico el siguiente código:
sin embargo me devuelve -1 todo el tiempo sin importar si el registro existe
o no!

Dim comando As SqlCommand = New SqlCommand
comando.Connection = conexion
comando.CommandText = "select * from tabla where id = '1' "
conexion.Open()
MsgBox(comando.ExecuteNonQuery)
conexion.Close()

Gracias
Atte.
Squiur.

Preguntas similare

Leer las respuestas

#1 Carlos Gómez
10/05/2006 - 19:54 | Informe spam
Squiur wrote:

quiero saber si un registro existe en un tabla y aplico el siguiente
código: sin embargo me devuelve -1 todo el tiempo sin importar si el
registro existe o no!

Dim comando As SqlCommand = New SqlCommand
comando.Connection = conexion
comando.CommandText = "select * from tabla where id = '1'
"
conexion.Open()
MsgBox(comando.ExecuteNonQuery)
conexion.Close()



Si señor, como debe ser.
executeNonQuery devuelve el número de filas afectadas por un update, delete
o insert. En el caso de un select devuelve 1.
prueba con:
comando.CommandText = "SELECT COUNT(*) FROM Tabla WHERE id = '1'
conexion.Open
MsgBox(comando.ExecuteScalar.ToString)
conexion.Close
que te devolverá el número de registros cuyo campo id sea '1'
Respuesta Responder a este mensaje
#2 Hector Minaya [VB.Net MVP]
11/05/2006 - 07:37 | Informe spam
Es correcto, el ExecuteNonQuery te devuelve la cantidad de filas que fueron
afectadas por la operacion (Update, Insert & Delete), en el caso de un
Select no hay filas afectadas por lo que te devuelve un -1.

Debes utilizar un ExecuteScalar para que te devuelva la primera columna de
la primera fila que en tu caso va a ser el count(*) del query.



Hector Minaya, MVP Visual Basic

blog: http://www.VBdevelopers.Net

"Squiur" wrote in message
news:
quiero saber si un registro existe en un tabla y aplico el siguiente
código:
sin embargo me devuelve -1 todo el tiempo sin importar si el registro
existe
o no!

Dim comando As SqlCommand = New SqlCommand
comando.Connection = conexion
comando.CommandText = "select * from tabla where id = '1' "
conexion.Open()
MsgBox(comando.ExecuteNonQuery)
conexion.Close()

Gracias
Atte.
Squiur.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida