ExtreemD4t4 Posted December 1, 2013 Report Share Posted December 1, 2013 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 More sharing options...
susodicho Posted December 1, 2013 Report Share Posted December 1, 2013 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 More sharing options...
ExtreemD4t4 Posted December 1, 2013 Author Report Share Posted December 1, 2013 (edited) 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 datareaderpero 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 December 1, 2013 by ExtreemD4t4 Link to comment Share on other sites More sharing options...
cañangasñangas Posted December 2, 2013 Report Share Posted December 2, 2013 cerrado a peticion... Link to comment Share on other sites More sharing options...
Recommended Posts