Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Asignar Variable A Una Consulta Sql (http://www.forosdelweb.com/f29/asignar-variable-consulta-sql-567727/)

e_daniel316 19/03/2008 21:16

Asignar Variable A Una Consulta Sql
 
hola estoy usando vs 2005 y sql 2005 express, y quiero hacer un select a una tabla para que me devuelta el vAlor maximo de un campo y a ese valor sumarle "1",eso ya lo tengo pero ahora el problema es que quiero que ese valor lo muestre en un textbox, este es el codigo

TextBox.Text = rs.Open("select max(codigo)from miTabla", cnn)

ese codigo da un error que dice que la expresioin no genera un valor,quiero saber como hacer que esa consulta genere un valor y asignarla a una variable para poder sumarle "1" Y despues mostrarlo en el textbox

ojala me entiendan,
gracias de antemano

Adolfiten 19/03/2008 21:38

Re: Asignar Variable A Una Consulta Sql
 
Valor, definí una variable de algún tipo de dato que soporte el que tenés como id en la base de datos... e igualalo al campo que te trae la consulta.
Yo uso DataSet's...
EJEMPLO:


Código:

Dim valor as Integer

Dim unaFila As DataRow
unaFila = Ds.Tables(0).Rows(0)

valor = CType(unaFila.Item("Nombre_campo_que_solicitaste"), String) 'String o el tipo de dato que sea...

Ds es una instancia de un dataset que contiene el resultado de la consulta. Luego de tener el valor en la variable es una pasada, lo ponés donde vos quieras, textbox, labels... etc.

Espero ayude... saludos.


Pará pará... ¡es mi post 97 creo!

jlbautista 19/03/2008 22:31

Re: Asignar Variable A Una Consulta Sql
 
El problema es q hay q diferenciar entre un tipo de dato y otro:
* TextBox1.Text te admite un string como argumento a esa propiedad.
* rs.Open, o cualquier otro modo de ejecución del comando SELECT a una base de datos te regresará una fila (Row) q pertenece a una tabla (Table) y q puedes vincular o asociar con otras tablas en una colección de ellas (DataSet)...
Por lo tanto el valor q mandas como argumento a la propiedad .Text del TextBox, no coincide en TIPOS de dato con el regresado por tu consulta

Adolfiten te dió una buena idea de como vincular los datos q obtienes de tu consulta a un DataSet y luego ingresar a esos valores para poder hacer uso de ellos en los controles q te proporciona el IDE de .NET

Podrias usar algo como esto tambien:
Código:

'vinculas el resultado de tu consulta a un DataTable
Dim dtTemporal as DataTable = rs.Open("select max(codigo)from miTabla", cnn)
'Accesas a la Primer fila de tu DataTable, en su primer columna y asignas el valor a la variable
TextBox1.Text = dtTemporal.Rows(0)(0).ToString()

Cuestión q juegues con los valores dentro del DataTable, Rows, o incluso Columns, y recuerda q los valores q asignas a variables o propiedades de controles deben coincidir en tipo de datos
Espero te Sirva

e_daniel316 10/04/2008 13:17

Re: Asignar Variable A Una Consulta Sql
 
me sigue saliendo el mismo error:
"la expresion no general un valor"

jlbautista 10/04/2008 14:41

Re: Asignar Variable A Una Consulta Sql
 
Hola
Solo para preguntarte:
1. Usas ADO para conectarte a tu BD?

Puedes postear tu código para checarlo, pls?
Creo q se usa algo como:
Código:

rs.Open "tu query SQL",cnn
http://www.aspfacil.com/articulos/2808001.asp

Estamos en contacto

gnzsoloyo 11/04/2008 05:30

Re: Asignar Variable A Una Consulta Sql
 
1. Estás tratando de obtener UN valor usando un conector ADO DB, que está generado para devolver una tabla o un registro. Esto es así porque usas un adaptador y el adqapador relaciona el dataset o el datatable con un origen de datos...
2. Si lo que tu quieres es el dato, no actualizarlo, o releerlo, sino el dato puro, lo que debes usar es SQL direcxto por medio de SqlCommand, siendo este objeto de la clase específica (de esser posible) de la base de datos que estés usando.
3. Los objetos SqlCommand (SqlCommand, OdbcCommand, OracleCommand, SqlLiteCommand, MysqlCommand, etc.), poseen un método denominado ExecuteReader cuyo fin es devolver un valor determinado cuando la sentencia SQL devuelve un y sólo un campo o valor. Así, una secuencia a aproximada sería:
Código:

Dim cxn as OdbcConnection(strConexion)
cxn.Open
Dim sSql as OdbcCommand("select max(codigo)from miTabla",cxn)
Dim valor as integer = sSql.ExecuteReader()

El uso de ExecuteNonQuery, devuelve el número de registros afectados, su ID o -1 si no se pudo realizar.
Usar cualquiera de los métodos de un XxxxCommand, implica controlar también las Exceptions que puedan producirse, ya que las mismas no serán absorbidas por el ADO.

e_daniel316 30/04/2008 14:30

Re: Asignar Variable A Una Consulta Sql
 
gracias a todos pero ya lo solucioné de esta forma:

Rs.open("select max(campoSolicitado) from tabla",cnn)
textbox.text=Rs.Fields(0).Value


La zona horaria es GMT -6. Ahora son las 00:42.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.