Foros del Web » Programación para mayores de 30 ;) » .NET »

Duda sobre texbox y consulta SQL

Estas en el tema de Duda sobre texbox y consulta SQL en el foro de .NET en Foros del Web. Les parece una tonteria, pero por mas que busco no encuentro lo que busco (o no se buscarlo) Tengo creada una consulta en sql, la ...
  #1 (permalink)  
Antiguo 25/07/2005, 10:03
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Pregunta Duda sobre texbox y consulta SQL

Les parece una tonteria, pero por mas que busco no encuentro lo que busco (o no se buscarlo)

Tengo creada una consulta en sql, la cual ejecuto desde vb.net (formulario) y necesito que el resultado de esa consulta se vea reflejado en varios txtbox.

¿Como lo puedo hacer?????

Muchas gracias
  #2 (permalink)  
Antiguo 25/07/2005, 10:06
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Pues lo cargas en un datareader y accedes al nombre de cada campo cargado, p.ej

miccommand.commandtext="Select nombre, apellido1, .... from tabla"
mydatareader = micommand.ExecuteReader

while mydatareader.read
nombre.text = mydatareader("nombre")
apellido1.text=mydatareader("apellido1")
...
end while
  #3 (permalink)  
Antiguo 25/07/2005, 10:12
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
OK, muchisimas gracias por tu rapidez xD
  #4 (permalink)  
Antiguo 25/07/2005, 10:24
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Pues parece que no funciona bien, este es el codigo:

Código:
        Dim myReader As SqlDataReader
        Dim miccommand As SqlCommand
        miccommand.CommandText = "Select * FROM tbl0ItemAsset WHERE IdXNItem=' " & sel & " '"

        myReader = miccommand.ExecuteReader

        While myReader.Read
            txtRef.Text = myReader("fldTAsset")
        End While
Que estoy haciendo mal???
  #5 (permalink)  
Antiguo 25/07/2005, 10:34
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Has asignado a miccommand la conexión????Está abierta????La consulta devuelve algo???

Asegurate de estas 3 cosas, lo otro está bien.
  #6 (permalink)  
Antiguo 25/07/2005, 10:42
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Solo una observación...

Si la consulta solo va a regresar un registro no le veo sentido usar un while.. si lo podemos sustituir por un IF..

ejemplo:

Cita:
myReader = miccommand.ExecuteReader

if myReader.Read
txtRef.Text = myReader("fldTAsset")
End If
Por cierto.. estoy de acuerdo con lo que dice Jose_minglein2, verifica que tengas un conexion válida y que la tengas abierta antes de hacer el ExecuteReader

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 26/07/2005, 00:07
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Se supone que tengo que asignar la conexion y abrirla asi??

Código:
        miccommand.Connection.ConnectionString = "workstation id='DTI-2';packet size=4096;user id=agrau;integrated security=SSPI;data source='DTI-2';persist security info=False;initial catalog=Inventario"
        miccommand.Connection.Open()
Aun no me aclaro mucho con .NET :(
  #8 (permalink)  
Antiguo 26/07/2005, 00:30
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Tienes que crear un objeto de tipo conexion

dim miconexion as SqlConnection = new SqlConection(tu_cadena_de_conexion)

micommand.connection=miconexion
miconexion.open
  #9 (permalink)  
Antiguo 26/07/2005, 00:37
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Siento mucho molestar tanto pero sigue sin funcionar, debo de ser un negado para las conexiones en .net.

Esto es lo que tengo:

Código:
        Dim myReader As SqlDataReader
        Dim miccommand As SqlCommand
        Dim miconexion As SqlConnection = New SqlConnection("workstation id='DTI-2';packet size=4096;user id=agrau;integrated security=SSPI;data source='DTI-2';persist security info=False;initial catalog=Inventario")
        miccommand.Connection = miconexion
        miconexion.Open()
        miccommand.CommandText = "Select * FROM tbl0ItemAsset WHERE IdXNItem=' " & sel & " '"
        myReader = miccommand.ExecuteReader
        txtRef.Text = myReader("fldTAsset")
  #10 (permalink)  
Antiguo 26/07/2005, 01:18
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Esto asi no lo puedes poner, puesto que el puntero en el datareader todavía no ha sido establecido:
txtRef.Text = myReader("fldTAsset")

haz el while myreader.read o como te dijo rootk if myreader.read

Si sigue sin funciones, comprueba, copiadno la consulta y ejecutandola en tu GBD que devuelve algún valor (incluyendo en valor de "sel" que estés utilizando), si te devuelve un valor, y en la aplicacion sigue sin funcionar (y sin saltarte ninguna excepción en el .open) podría ser cuestión de permisos de la BD. ¿Que gestor usas?
  #11 (permalink)  
Antiguo 26/07/2005, 01:26
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Estoy utilizando SQLSERVER 2000, la conexion me funciona perfectamente en los otros formularios que tengo, pero esto me da errores, aqui os copio el error que me produce en la linea "miccommand.connection=miconexion"

Código:
Excepción no controlada del tipo 'System.NullReferenceException' en Inventario.exe

Información adicional: Referencia a objeto no establecida como instancia de un objeto.
  #12 (permalink)  
Antiguo 26/07/2005, 01:37
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Perdón, antes de la asignación miccommand.connection=miconexion, debes hacer

miccomand = new sqlcommand()
  #13 (permalink)  
Antiguo 26/07/2005, 02:50
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Ahora si que funciono,

Muchisimas gracias a todos por vuestra ayuda
  #14 (permalink)  
Antiguo 26/07/2005, 05:13
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Si me lo permiten voy a aprovechar este hilo para lanzar otra pregunta que me trae de cabeza media mañana :(

En una tabla SQL tengo un campo bit, el problema esque construyo una consulta de inserción para lanzarla desde VB.NET y no acierto a hacerlo por culpa de ese campo bit de la base de datos.

El campo que quiero insertar es un Checkbox, habia probado a crear una variable, pero no hacierto el tipo de variable que debe ser para poder introducirlo a traves de la consulta INSERT.

Muchas gracias
  #15 (permalink)  
Antiguo 26/07/2005, 05:27
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
mmm, en SQL Server no se, yo en Mysql las paso a entero 1 o 0 para los bit, puedes probar haber que tal.
  #16 (permalink)  
Antiguo 26/07/2005, 05:31
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Eso es lo primero que habia provado (vengo de vb 6 xD) pero me da este error:

"Error de sintaxis al convertir el valor varchar '1' para una columna de tipo de datos bit"

Basicamente hago esto:

Código:
dim codigo as integer
if chk.checked=true then
codigo=1
else
codigo=0
end if
Y luego le lanzo la consulta parametrizada poniendo codigo como parametro a insertar.
  #17 (permalink)  
Antiguo 26/07/2005, 05:44
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
en que línea exactamente te da el error??
  #18 (permalink)  
Antiguo 26/07/2005, 05:48
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
"Excepción no controlada del tipo 'System.Data.SqlClient.SqlException' en system.data.dll

Información adicional: Error del sistema.
"
En la linea donde ejecuta la consulta--> SqlCommando.ExecuteNonQuery()
  #19 (permalink)  
Antiguo 26/07/2005, 05:54
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Prueba a pasarla directamente el valor como un booleano, de todas maneras voy a mirar algo haber.
  #20 (permalink)  
Antiguo 26/07/2005, 07:55
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Nada no hay forma, ni con booleano, ni con integer ni metiendlo los valores directamente :(:(:(
  #21 (permalink)  
Antiguo 26/07/2005, 08:31
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
busca en la msdn de microsoft, ya que esta orientada a sql server, quizá ahí encuentres algo.
  #22 (permalink)  
Antiguo 26/07/2005, 08:42
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Al final lo solucione, de una forma muy bruta, pero a resultado.

He cambiado el tipo de datos de bit a int en sqlserver. No lo deberia de hacer, ya que luego tengo que colgar la base de datos en un servidor y volcar otra copia que hay de la base de datos mas actualizada, pero no es problema (lo volvere a cambiar)

Muchas gracias
  #23 (permalink)  
Antiguo 26/07/2005, 14:43
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
He cambiado el tipo de datos de bit a int en sqlserver.
No es necesario que lo pases a int friend, puedes seguir usando el campo bit, y le mandas valores como true or false.... haz la prueba..

O si tienes dudas coloca el code que tienes y te podemos echar la mano para que quede resuelto tu problema.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #24 (permalink)  
Antiguo 27/07/2005, 00:05
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Ya probe a meterle valores directamente desde vb.net (true, false, 0, 1) y daba error :(, de todas formas ahora ya esta solucionado (cambiando el tipo bit a integer).

Gracias
  #25 (permalink)  
Antiguo 27/07/2005, 01:09
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Por cierto hay formularios en los cuales tengo 5 combos con este codigo:
Código:
        ds = New Data.DataSet
        Ssql = "SELECT fldTUserName FROM tbl8Usuarios"
        da = New Data.SqlClient.SqlDataAdapter(Ssql, conection)
        da.Fill(ds, "tbl8Usuarios")
        cmbUsuario.DataSource = ds.Tables(0).DefaultView
        cmbUsuario.ValueMember = "fldTUserName"
        cmbUsuario.DisplayMember = "Descripcion"
Y me tarda muchisim en cargar el formulario, porque puede ser??
Tengo un ordenador Celeron 2gh, la base de datos en local.

Gracias
  #26 (permalink)  
Antiguo 27/07/2005, 01:59
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Si tus combos van a ser de sólo lectura, te recomiendo utilizar datareaders, puesto que consumen menos recursos, a parte de eso, puede haber otras muchas causas, uso indebido de session, del viewstate, y un largo...
  #27 (permalink)  
Antiguo 27/07/2005, 04:12
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Bueno, he probado a crearme un ejecutable, y misteriosamente los combos y cargas de formularios funcionan muchisimo mas deprisa !!!, Ahora si que no entiendo nada :(
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:27.