Jump to content

No carga resultado de la consulta SQL en variable Visual.net


Recommended Posts

bueno muchachos, soy yo denuevo :D, tengo un problema al cargar el resultado de una consulta sql en una variable string comun y silvestre

 

 

lo que necesito que la consulta haga es preguntar por el ID de un campo y lo almacene en una variable, hasta donde se, me acepta la concatenacion de la variable y debería arrojar el resultado pero no se pk cresta no lo almacena, ejecuto la consulta paso a paso y voy viendo el resultado que se va almacenando en las variables y me da 0, cuando debería ser 8

 

 

les dejo el código de lo que hago a ver si me pueden ayudar

Dim sql5 As String = "select id_raza from raza where nombre_raza ='" & CmbRaza.SelectedItem & "'"
Dim cmd5 As New SqlCommand(sql5, cn)
cn.Open()
        
 Dim i3 As String
 i3 = cmd5.ExecuteNonQuery()
 cn.Close()

el ID que debería devolverme seguramente está como string (lo intentñe con integer pero nada tampoco)

 

Link to comment
Share on other sites

Aers, no sé si estoy entendiendo bien o no, pero creo que estás tratando de obtener el resultado de una consulta desde el valor devuelto por ExecuteNonQuery. Ahí hay algo malo, porque una consulta puede devolver varias filas, y ExecuteNonQuery devuelve un entero (dependiendo de la consulta que hagas este número puede representar la cantidad de filas involucradas), no hay forma que este entero sirva para guardar la cantidad de información que puede devolver una consulta SQL. De hecho, en muchos casos, el valor devuelto por ExecuteNonQuery se ignora.

 

Así que para obtener la información devuelta por una consulta, puedes usar un DataReader (mira los ejemplos que aparecen en el enlace).

Link to comment
Share on other sites

uta, sabis que?, ahora que lo pienso soy harto weon xD, gracias por el dato , voy a revisarlo y veo si me funcio´no

 

 

 

EDIT:

 

al final quedó resuelto con este código x si a alguien le sirve

 

 

 Dim reader As SqlDataReader
        cn.Open()
        reader = cmd3.ExecuteReader()
        Dim i As Integer

        While (reader.Read())
            i = reader.GetInt32(0)
        End While


        cn.Close()

el problema de ese codigo es que te extrae el primer valor del datareader no mas, y como no se puede recorrer, tuve que buscar una consulta que me ordenara el campo de una tabla de mayor a menor para poder obtener el ultimo valor del datareader

pero eso era para otra consulta donde obtenia todos los ID y los almacenaba en el datareader

 

asike si a alguien le interesa tambien le dejo el codigo (soy pollo pero el que sabe entenderá)

 

 

la consulta para el datareader tiene que ser asi

 

Dim sql5 As String = "SELECT TOP 1 id_pa FROM paciente ORDER BY id_pa DESC"

 

y luego se hace el while de arriba y se almacena en una variable

 

Edited by ExtreemD4t4
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...