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

Cargar Filas tabla en Textbox

Estas en el tema de Cargar Filas tabla en Textbox en el foro de .NET en Foros del Web. Buenas a todos, mi problema es el siguiente: Tengo en el form un combo que me recoge en una consulta todos los proveedores contratados. Cuando ...
  #1 (permalink)  
Antiguo 20/05/2011, 03:20
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Cargar Filas tabla en Textbox

Buenas a todos, mi problema es el siguiente:

Tengo en el form un combo que me recoge en una consulta todos los proveedores contratados.
Cuando le doy a buscar, qiero que dependiendo de los productos que ofrece cada proveedor me salgan MÁS o MENOS texbox y que se carguen todos los productos en los textbox correspondienntes.

Es que lo que tengo conseguido es que me cargue los productos, con el problema que en todos los textbox me carga el primer registro de la tabla.

Como puedo hacer para que me cargue todos y no solo el primero? yo lo tengo asi:

Dim cmd As New OleDb.OleDbCommand("SELECT descripcio,prenitat FROM productes WHERE codi_prov='" & Cbproveidor.Text & "'", conex)
Dim dr As OleDb.OleDbDataReader
Dim ds As New DataSet
conex.Open()
dr = cmd.ExecuteReader
If dr.Read Then
txt1.Text = dr(0)
txt2.Text = dr(0)
txt3.Text = dr(0)
txt4.Text = dr(0)
txt5.Text = dr(0)
txt6.Text = dr(0)
txt7.Text = dr(0)
txt8.Text = dr(0)
Tbunitat1.Text = dr(1)
Tbunitat2.Text = dr(1)
Tbunitat3.Text = dr(1)
Tbunitat4.Text = dr(1)
Tbunitat5.Text = dr(1)
Tbunitat6.Text = dr(1)
Tbunitat7.Text = dr(1)
Tbunitat8.Text = dr(1)
Else
MsgBox("Error")
End If
conex.Close()


Se que esta mal porque solo estoy llamando a la primera fila, pero es que no se como llamar a las siguientes...
Espero que me puedan ayudar,
Saludos!
  #2 (permalink)  
Antiguo 20/05/2011, 03:39
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 152
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Cargar Filas tabla en Textbox

Dim cmd As New OleDb.OleDbCommand("SELECT descripcio,prenitat FROM productes WHERE codi_prov='" & Cbproveidor.Text & "'", conex)
Dim dr As OleDb.OleDbDataReader
Dim ds As New DataSet
conex.Open()
dr = cmd.ExecuteReader
If dr.Read Then --- > Si haces un if solo te leera la primera, fila tienes que poner un while
txt1.Text = dr(0) -----> si a todos le pones el 0 solo te pondra el primer campo.
txt2.Text = dr(0) El numero en el parentesis es el número del campo ,no la
txt3.Text = dr(0) fila.
txt4.Text = dr(0)
txt5.Text = dr(0)
txt6.Text = dr(0)
txt7.Text = dr(0)
txt8.Text = dr(0)
Tbunitat1.Text = dr(1)
Tbunitat2.Text = dr(1)
Tbunitat3.Text = dr(1)
Tbunitat4.Text = dr(1)
Tbunitat5.Text = dr(1)
Tbunitat6.Text = dr(1)
Tbunitat7.Text = dr(1)
Tbunitat8.Text = dr(1)
Else
MsgBox("Error")
End If
conex.Close()
  #3 (permalink)  
Antiguo 20/05/2011, 03:43
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cargar Filas tabla en Textbox

He cambiado el codigo y me ha funcionado, es que lo que me decias ya lo probé pero al ponerle un numero mayor que 0 ya me decia "indice fuera de limites".
Lo he probado con dataadapter y un dataset y va perfecto.

El único problema que tengo es que tengo 8 textbox, si el proveedor tiene 8 productos, perfecto, pero cuando un proveedor tiene menos me salta un error en los textbox que sobran

Como podria hacer para tener la pantalla vacia y que solo me saliesen los textbox correspondientes a tantos registros tenga el proveedor?


Gracias x contestar tan rápido,

Saludos!
  #4 (permalink)  
Antiguo 20/05/2011, 03:49
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 152
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Cargar Filas tabla en Textbox

Tienes razon, me equivoque con el código es dr.getvalue(0) y asi te pondra el primer campo y si cambias el numero a 1 te mostrara el segundo campo.

¿Tiene que ser con textbox?
  #5 (permalink)  
Antiguo 20/05/2011, 03:54
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cargar Filas tabla en Textbox

Si, se que con un datagrid seria mucho mas facil pero el problema es que es un pedido al proveedor, de manera que en dos filas del form me muestra todos los textox de la descripcion del articulo y en la otra fila el precio de cada uno.
Luego tengo otro textbox donde indico la cantidad que quiero de cada producto, y al darle a un boton que tengo que se llama calcular me calcula el importe total del pedido.
El problema es lo que te decia, que como un proveedor tenga menos productos me da error porque no encuentra nada en esas filas.
  #6 (permalink)  
Antiguo 20/05/2011, 08:42
 
Fecha de Ingreso: diciembre-2010
Mensajes: 63
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Cargar Filas tabla en Textbox

saludo lo ke podrias hacer es
Buenas a todos, mi problema es el siguiente:

Tengo en el form un combo que me recoge en una consulta todos los proveedores contratados.
Cuando le doy a buscar, qiero que dependiendo de los productos que ofrece cada proveedor me salgan MÁS o MENOS texbox y que se carguen todos los productos en los textbox correspondienntes.

Es que lo que tengo conseguido es que me cargue los productos, con el problema que en todos los textbox me carga el primer registro de la tabla.

Como puedo hacer para que me cargue todos y no solo el primero? yo lo tengo asi:

Dim cmd As New OleDb.OleDbCommand("SELECT descripcio,prenitat FROM productes WHERE codi_prov='" & Cbproveidor.Text & "'", conex)
Dim dr As OleDb.OleDbDataReader
Dim ds As New DataSet
conex.Open()
dr = cmd.ExecuteReader
If dr.Read Then
Try
txt1.Text = dr(0)
Tbunitat1.Text = dr(1)
txt2.Text = dr(0)
Tbunitat2.Text = dr(1)
txt3.Text = dr(0)
Tbunitat3.Text = dr(1)
txt4.Text = dr(0)
Tbunitat4.Text = dr(1)
txt5.Text = dr(0)
Tbunitat5.Text = dr(1)
txt6.Text = dr(0)
Tbunitat6.Text = dr(1)
txt7.Text = dr(0)
Tbunitat7.Text = dr(1)
txt8.Text = dr(0)
Tbunitat8.Text = dr(1)
Catch
'cuando encuentre el primer campo vacio vendara y no hara nada

end Try
Else
MsgBox("Error")
End If
conex.Close()

de esa forma vas llenando tus texboxs y cuando no encuentre mas simplemente no hara nada

espero te ayude;
  #7 (permalink)  
Antiguo 20/05/2011, 09:10
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cargar Filas tabla en Textbox

Perfecto tio, ma ido genial, lo unico que me pasa aora es que yo hacia un calculo que multiplicaba la cantidad que iba añadiendo por el precio de cada producto y me mostraba el total por un textbox.

Si dejo algun campo en blanco el resultado me lo deja a cero, porque la variable "total" es una double, que podria hacer?
  #8 (permalink)  
Antiguo 20/05/2011, 11:07
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cargar Filas tabla en Textbox

Solucionado: Ha quedado chapucero pero bueno, le he asignado un 0 a cada textbox, de manera que si esta en blanco por lo menos sumara bien los valores que rellene.

Muchas gracias por todo y ademas muy bien explicado y rápido

Saludos!!!
  #9 (permalink)  
Antiguo 24/05/2011, 10:38
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cargar Filas tabla en Textbox

Y si ahor quiero hacerlo al reves? es decir todos los textbox insertarlos uno por uno en cada fila de la tabla, como lo podria hacer?
  #10 (permalink)  
Antiguo 25/05/2011, 15:48
 
Fecha de Ingreso: diciembre-2010
Mensajes: 63
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Cargar Filas tabla en Textbox

bueno como su nombre lo indica SqlDataReader es un lector de datos
ahora lo podrias hacer con un DataTable;
de esta forma:

DIm tabla as new DataTable

tabla.Columns.Add("descripcion");
tabla.Columns.Add("prenitad");

tabla.Rows.Add(txt1.Text,Tbunitat1.Text);
tabla.Rows.Add(txt2.Text,Tbunitat2.Text);
etc...
espero te sirva;
__________________
En la vida siempre encontraras a alguien inferior y Superior a ti
  #11 (permalink)  
Antiguo 26/05/2011, 02:02
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cargar Filas tabla en Textbox

no acabo de entenderlo... antes de todo esto tengo que hacer la consulta no?
Mira yo tengo esto:

Dim cmd As New OleDb.OleDbCommand("INSERT INTO peticio VALUES('" & CInt(Lnum.Text) & "','" & Cbproveidor.Text & " ','" & Ldata.Text & "','" & Tbq1.Text & " ','" & txt1.Text & "','" & Tbunitat1.Text & "','" & Tbpreu1.Text & "','" & Tbtotal.Text & "','Enviat')", conex)
conex.Open()
cmd.ExecuteNonQuery()
Dim tabla As New DataTable
tabla.Columns.Add("quantitat")
tabla.Columns.Add("descripcio")
tabla.Columns.Add("preu_producte")

tabla.Rows.Add(Tbq1.Text, txt1.Text, Tbunitat1.Text)
tabla.Rows.Add(Tbq2.Text, txt2.Text, Tbunitat2.Text)
tabla.Rows.Add(Tbq3.Text, txt3.Text, Tbunitat3.Text)
tabla.Rows.Add(Tbq4.Text, txt4.Text, Tbunitat4.Text)
tabla.Rows.Add(Tbq5.Text, txt5.Text, Tbunitat5.Text)
tabla.Rows.Add(Tbq6.Text, txt6.Text, Tbunitat6.Text)
tabla.Rows.Add(Tbq7.Text, txt7.Text, Tbunitat7.Text)
tabla.Rows.Add(Tbq8.Text, txt8.Text, Tbunitat8.Text)
conex.Close()

MsgBox("Petició d'stock registrat a la Base de Dades")


Pero claro solo ejecuta la consulta del principio lo demás que me has dicho no lo hace, en que me equivoco?

Etiquetas: filas, tabla, textbox
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 01:24.