Principales respuestas
pasar datos de un textbox a un datagridview

Pregunta
-
Hola amigos quisiera que me den una ayuda en este problemita en visual C#.
Quiero saber como puedo llenar un datagridview a partir de los datos que tengo en los textbox, por ejemplo.
this.Txt_Nombre.text = "Cristian";
this.Txt_Apellido.text = "Benitez";
this.Txt_Edad.text = "24";
.
.
.
Estos datos quiero pasarlos a un datagridview y no se como, si pudieran darme una orientacion para pasarlo de tal manera que quede en una fila, nombre, apellido, edad, etc. y asi cada vez que de un clic en un boton se valla creando una nueva fila con la informacion que le de a los textbox;
{
datagridview = textboxs
}
- Cambiado webJoseModerator miércoles, 31 de octubre de 2012 23:29 (De:Lenguaje C#)
Respuestas
-
O.K., vamos por pasos:
1) La clase para contener os datos de una linea:
Code Snippetclass LineaDelGrid
{
private string nombre;
public string Nombre { get { return nombre; } set { nombre=value; } }
private string apellido;
public string Apellido{ get { return apellido; } set { apellido=value; } }
private string edad;
public int Edad{ get { return edad; } set { edad=value; } }
public LineaDelGrid(string nombre, string apellido, int edad)
{
this,Nombre=nombre;
this.Apellido=apellido;
this.Edad=edad;
}
}
La clase anterior la puedes añadir como un archivo independiente al proyecto, o puedes pegar ese mismo código dentro del mismo fichero fuente del formulario que estás diseñando.
2) La colección para contener las lineas de grid. Esta tienes que declararla dentro de la clase de tu formulario:
Code SnippetList ColeccionDeLineas = new List();
3) El enlace con el GridView. Este puedes ponerlo, por ejemplo, dentro del Form_Load:
Code SnippetDataGirdView1.DataSource = ColeccionDeLineas;
4) Añadir una linea nueva. Esto lo metes en el Click del botón que tiene que pasar los textboxes al DataGridView:
Code SnippetLineaDelGrid lg = new LineaDelGrid(textBoxNombre.Text, textBoxApellido.Text, int.Parse(textBoxEdad.Text));
ColeccionDeLineas.Add(lg);
-
Al llamar desde el formulario1 al 2, seguramente estarás haciendo algo parecido a esto:
formulario2 frm = new formulario2();
frm.ShowDialog();
//AQUI
frm.Dispose();
Pues bien, en el código anterior, donde he marcado "AQUI" es donde hay que recuperar los datos del formulario2 para procesarlos en el 1 (es decir, al voler del ShowDialog, que es cuando ya se ha cerrado el formulario2, pero antes del Dispose, que es cuando se "borra" su contenido).
En el formulario2, declara como públicas las variables o propiedades que devuelven la información que quieres recuperar desde el formulario1. Y si tienes un botón de "OK" y otro de "cancelar", devuelve desde ellos, respectivamente, un Ok y un Cancel en el DialogResult del formularo.
Suponiendo, por ejemplo, que en el OK devuelves un dato asi:
public string CodigoDeProducto;
...
private void cmdOk_Click(...)
{
this.CodigoDeProducto = textBox1.Text;
this.DialogResult=DialogResult.Ok;
}
Después recuperarías este valor en el formulario2 asi:
formulario2 frm = new formulario2();
DialogResult res = frm.ShowDialog();
if (res==DialogResult.Ok)
{
valorRecuperado = frm.CodigoDeProducto;
//Procesar aqui el dato recuperado
}
frm.Dispose();
Todas las respuestas
-
1: Crea una clase con trea propiedades públicas (Nombre, Apellido, Edad). Llamémosle a la clase LineaDelGrid. OJO, tienen que ser propiedades, no vale que sean campos.
2: Crea una colección de elementos de la clase anterior, por ejemplo, un List<LineaDelGrid>. Llamémosle ColeccionDeLineas. Inicialízala para que no sea null.
List<LineaDelGrid> ColeccionDeLineas = new List<LineaDelGrid>();
3: Enlaza esta colección al DataSource del DataGridView.
DataGirdView1.DataSource = ColeccionDeLineas;
4: En el click del botón que tiene que pasar los textboxes al DataGridView, crea una instancia de LineaDelGrid, mete en sus propiedades los valores de los textboxes, y añádelo con un Add a la ColeccionDeLineas. Con esto aparece automáticamente en el DataGridView.
-
-
O.K., vamos por pasos:
1) La clase para contener os datos de una linea:
Code Snippetclass LineaDelGrid
{
private string nombre;
public string Nombre { get { return nombre; } set { nombre=value; } }
private string apellido;
public string Apellido{ get { return apellido; } set { apellido=value; } }
private string edad;
public int Edad{ get { return edad; } set { edad=value; } }
public LineaDelGrid(string nombre, string apellido, int edad)
{
this,Nombre=nombre;
this.Apellido=apellido;
this.Edad=edad;
}
}
La clase anterior la puedes añadir como un archivo independiente al proyecto, o puedes pegar ese mismo código dentro del mismo fichero fuente del formulario que estás diseñando.
2) La colección para contener las lineas de grid. Esta tienes que declararla dentro de la clase de tu formulario:
Code SnippetList ColeccionDeLineas = new List();
3) El enlace con el GridView. Este puedes ponerlo, por ejemplo, dentro del Form_Load:
Code SnippetDataGirdView1.DataSource = ColeccionDeLineas;
4) Añadir una linea nueva. Esto lo metes en el Click del botón que tiene que pasar los textboxes al DataGridView:
Code SnippetLineaDelGrid lg = new LineaDelGrid(textBoxNombre.Text, textBoxApellido.Text, int.Parse(textBoxEdad.Text));
ColeccionDeLineas.Add(lg);
-
Hola quiero agradecerle mucho por su ayuda, estuvo genial, solo que le cambie esta linea.
Code SnippetList<LineaDelGrid> ColeccionDeLineas = new List<LineaDelGrid>();
agrege <LineaDelGrid> porque no me funcionaba sin <>.
Y tambien aqui me funciono de la siguiente manera. porque cada vez que daba un clic en el boton solo se me presenta una sola vez el primer registro agregado y los demas no aparecen, pero me di cuenta de que la Lista sigue almacenando los registros.
Code Snippetprivate
void Btn_OK_Click(object sender, EventArgs e){
ColeccionDeLineas.Add(
new LineaDelGrid(this.Txt_Nombre.Text, this.Txt_Apellido.Text, int.Parse(this.Txt_Edad.Text))); //aqui agrego un contadorcont += 1;
//si el contador es igual a 5 registros cargo el datagridview1 if (cont == 5){
}
}
-
Hola Sr. Alberto
Quisiera saber si me puede dar una mano con una factura que estoy queriendo hacer, por decir,
1. Ttengo un formulario1 en donde tengo los datos de la cabecera de la factura, para el detalle tengo un datagridview1, ahora cuando quiero llenar el datagridview1 con los productos buscados, doy clic en un boton que se llama nuevo en donde llamo a otro formulario2, en este formulario2 tambien tengo otro datagridview2 en donde busco el producto, lo encuentro y en unos texbox ingreso cantidad, precio
aqui tambien tengo un boton en donde al momento de dar clic para pasar esos datos del formulario2 al formulario1 de la factura, pero no puedo hacer que se envien los datos.
que debo de hacer...
-
Al llamar desde el formulario1 al 2, seguramente estarás haciendo algo parecido a esto:
formulario2 frm = new formulario2();
frm.ShowDialog();
//AQUI
frm.Dispose();
Pues bien, en el código anterior, donde he marcado "AQUI" es donde hay que recuperar los datos del formulario2 para procesarlos en el 1 (es decir, al voler del ShowDialog, que es cuando ya se ha cerrado el formulario2, pero antes del Dispose, que es cuando se "borra" su contenido).
En el formulario2, declara como públicas las variables o propiedades que devuelven la información que quieres recuperar desde el formulario1. Y si tienes un botón de "OK" y otro de "cancelar", devuelve desde ellos, respectivamente, un Ok y un Cancel en el DialogResult del formularo.
Suponiendo, por ejemplo, que en el OK devuelves un dato asi:
public string CodigoDeProducto;
...
private void cmdOk_Click(...)
{
this.CodigoDeProducto = textBox1.Text;
this.DialogResult=DialogResult.Ok;
}
Después recuperarías este valor en el formulario2 asi:
formulario2 frm = new formulario2();
DialogResult res = frm.ShowDialog();
if (res==DialogResult.Ok)
{
valorRecuperado = frm.CodigoDeProducto;
//Procesar aqui el dato recuperado
}
frm.Dispose();
-
Hola Sr. Alberto,
Quiero agradecerle por la ayuda prestada, ya me salio lo de cargar los datos desde otro formulario a una grilla asi como usted dijo.
Quisiera saber si me topo con otro incomveniente podre contar con su ayuda.
De antemano mil gracias
-
Vangoth Escribió: Quisiera saber si me topo con otro incomveniente podre contar con su ayuda.
Sí, claro. Si le surge un nuevo inconveniente, le recomiendo que abra un nuevo hilo bajo un título edecuado, bien sea en estos mismos foros de MSDN o bien en el grupo público news.microsoft.com:microsoft.public.es.csharp, donde tanto yo mismo como otros participantes habitualmente examinamos las preguntas y respondemos cuando conocemos las respuestas y tenemos oportunidad de hacerlo.
-
Yo necesito pasar tambien los datos de los textbox al datagrid pero con vb.net...
hice el ejemplo en codigo vb pero el sub que tengo en la clase LineaDelGrid que tiene el mismo nombre pero con 5 parametros (en mi caso) no lo detecta en la clase de mi formulario, me dice que me paso de los argumentos del LineaDelGrid.
mi codigo es el siguiente:
Public
Class LineaDelGrid Private fecha As Date Public Property _Fecha() As Date Get Return fecha End Get Set(ByVal value As Date)fecha = value
End Set End Property Private proveedor As String Public Property _Proveedor() As String Get Return proveedor End Get Set(ByVal value As String)proveedor = value
End Set End Property Private formato As String Public Property _formato() As String Get Return formato End Get Set(ByVal value As String)formato = value
End Set End Property Private cant_solicitada As Integer Public Property _cant_solicitada() As Integer Get Return cant_solicitada End Get Set(ByVal value As Integer)cant_solicitada = value
End Set End Property Private cant_recibida As Integer Public Property _cant_recibida() As Integer Get Return cant_recibida End Get Set(ByVal value As Integer)cant_recibida = value
End Set End PropertyEnd
ClassPublic
Class cap_recepcionImprenta Dim cl As New List(Of String)() Private Sub cap_recepcionImprenta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadDataGridViewRecepcion.DataSource = cl
End Sub Public Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Clickcl.Add(
New LineaDelGrid("date", "str", "str", "int", "int")) End SubEnd
ClassAgradeceria mucho su ayuda, soy nueva en .net.
-
No sé si además habrá algún otro error, pero así a bote pronto observo que cl está declarado como List(Of String) en lugar de List(Of LineaDelGrid).
Además de eso, el constructor de la clase LineaDelGrid está mal declarado. En C# lleva el mismo nombre que la clase, pero al traducirlo a VB es necesario cambiarlo por "Sub New".
-
Estimado Alberto
En lineas arriba pnes un ejemplo de como pasar datos de un textbox a un gridview, pero aun siguiendo los pasos que indicas no logro llenar el grid, por favo te adjunto mi codigo para que me digas donde esta fallando, y me puedas corregir, gracias por atencion, saludos.
public
partial class Form1 : Form{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dg.DataSource = ColecciodeLineas;
}
class LineadelGrid
{
{
get { return mvarnombre; } set { mvarnombre = value; }}
public LineadelGrid(string mvarnombre){
this.nombre = mvarnombre;}
}
private void btn_Click(object sender, EventArgs e)
{
LineadelGrid lg = new LineadelGrid(txt.Text);
ColecciodeLineas.Add(new LineadelGrid(this.txt.Text));
}
}
-
Si no me equivoco, tu problema reside en que sólo vinculas con el Grid la colección de líneas una vez al principio, en el Form_Load, y los datos de la colección los añades posteriormente, sin volver a vincularla. Esto funciona si lo haces con un DataTable, porque el datatable dispara un evento cada vez que le añades un registro, y el grid se recarga al recibir el evento. Pero con un List<> no se puede hacer lo mismo, porque no dispara ningún evento al cambiar sus datos, y por tanto el Grid no se entera.
Así que tendrás que hacer las operaciones al revés: Primero cargar de datos la ColecciodeLineas y luego hacer el DataBind con el Grid.
-
Estimado Alberto,
La verdad te pediria por favor si pudieras hacerme un ejemplo sencillo, el tema esta en ke hace mucho tiempo q no programo en c# y la verdad no recuerdo muy bien, solo kisiera si fuese un ejemplo sencillo con texbox, un boton y un grid, gracias de antemano, saludos
-
-
Estupendo, si resulto lo que mencionaste, el grid ya esta cargando, pero esto solo sucede para una linea del grid, pero si kisiera ingresar datos consecutivos, como por ejemplo un listado de 10 nombres dentro del grid, que metodo pudiera aplicar???
-
Para cargar más líneas, lo único que hace falta es añadir los datos en la lista y volver a hacer un nuevo DataBind para enlazar de nuevo el grid con la lista ampliada.
Tal como tienes el código del ejemplo no te funcionará porque cada vez que llamas al btn_Click vuelves a inicializar la lista (que ya estaba inicializada a nivel de Form) y añadirle una línea, con lo que siempre contiene una sola línea. Basta con que quites del método la línea de código que vacía la colección, y de esta manera irá creciendo cada vez que lo pulses:
private void btn_Click(object sender, EventArgs e)
{
ColecciodeLineas.Add(
new LineadelGrid(this.txt.Text));dg.DataSource = ColecciodeLineas;
}
-
Alberto, disculpa que sea tan pregunton en este aspecto, pero la verdad que necsito aydua, este es el codigo q tengo:
private
void Form1_Load(object sender, EventArgs e){
}
class LineadelGrid
{
{
get { return mvardato; } set { mvardato = value; }}
public LineadelGrid(string mvardato)
{
this.Dato = mvardato;
}
}
private void button1_Click(object sender, EventArgs e)
{
List<LineadelGrid> ColecciondeLineas = new List<LineadelGrid>();
ColecciondeLineas.Add(
new LineadelGrid(this.textBox1.Text));dataGridView1.DataSource = ColecciondeLineas;
}
Ahora si aun borrara la linea seleccionada y siguiendo lo que me comentas en mensajes anteriores, el grid se sigue llenando en una sola linea, es decir desde el unico textbox q tengo mando un primer valor y el grid lo recibe, ahora desde el mismo textbox mando un segundo dato, y en vez de hacer un lista del grid y colocarlo como segundo dato dentro del grid, pues borra el primer registro ingresado y coloca el segundo que coloque, es decir siempre sera un grid de un solo dato.
-
Si borras la línea seleccionada, sólo debe quedarte una única inicialización del List a nivel de formulario, por lo que sólo se tiene que vaciar en el momento de hacer el "new" del formulario. Por lo tanto, cada vez que se ejecute el Button1_Click se tiene que ejecutar el .Add y la lista tiene que ir creciendo. Si no es así, significa que algo de lo que estás haciendo no concuerda con lo que estamos discutiendo aquí. Verifícalo con el Depurador. Ejecuta el código paso a paso, y cerciórate de que cada vez que entras en el Button_Click la ColecciondeLineas conserva todos los datos que le metiste la última vez, y que después de ejecutar el .Add tiene una línea más, y por tanto al asignar la coleción al datasource del grid, el grid muestra una línea más. Si no es así, algo no está como crees que está. Aprovéchate de las herramientas del entorno de desarrollo de Visual Studio para buscar todas las referencias a tu objeto ColecciondeLineas, y comprueba en cuál de ellas está perdiendo el contenido.Apóyate, si es necesario, en el debugger para ejecutar el código paso a paso hasta que encuentres qué es lo que está sucediendo, En particular, ojo con los errores de ortografía, no vaya a ser que tengas dos variables con distinto nombre en lugar de una sola (en los primeros ejemplos pusiste ColecciodeLineas y en el último pone ColecciondeLineas).
-
holaaa que tal buen dia
tengo un problema paso un archivo de texto a un richtexbox y ahora a esos datos les hice un procedimiento almacenado como visualizo esos datos en un datagridview estoy en visual studio 2008 haciendo aplicaciones con forms... si me pueden responder aqui o a mi correo lamanchavmfr@hotmail.com
chidoone -
Amigo, una forma simple de hacer lo que vos decís es esta:
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Add(textBox1.Text, textBox2.Text);
}
previamente agregue las columna al datagridview con el diseñador. simplemente botón derecho del mouse
sobre el control, y seleccione "Agregar columnas". Luego en "texto del encabezado" le pones el nombre de los campos a cada
columna y listo. Funciona bien.
-
-
Oye estoy haciendo algo igual a lo que dices y tengo un TextBox1.Text y agego el codigo que dices y tengo un datagrid con el nombre de DataGrid6 y agrego el codigo que dices cambiando el nombre del grid ovbiamente y me marca error en el rows. de casualidad sabes a que se debe?? este es mi codigo
{
DataGrid6.Rows.Add(TextBox1.Text);
}
marca el error en el Rows espero puedas ayudarme
-
-
si claro. Tienes que fijarte que le envies al datagridview.add tantos elementos como celdas tiene la fila.
ejemplo: si el datagridview tiene columnas nombre y apellido. le envias datagrid.add(txtnombre.text,txtapellido.text) si le mandas un solo elemento da error.
Para enviar un solo elemento le debes decir Datagridview1.Rows[Nro de fila].Cells[nro de columna].value=txtNombre.text
dgAlumnos.Rows["0"].Cells["Nombre"].Value=txtNombre.text
-
Oye gracias por responder mira pude hacerlo de este modo espero les sirva a los que andan empezando como yo saludos
El codgigo se pega dentro del boton de guardar y obviow primero se crean los textbox que ahi aparecen y el datagrid
try
{
DataGrid6.AutoGenerateColumns =
true;
System.Data.
DataTable dtTabla=new System.Data.DataTable();
dtTabla.Columns.Add(
"Articulo");
dtTabla.Columns.Add(
"Descripcion");
dtTabla.Columns.Add(
"Unidad");
dtTabla.Columns.Add(
"Cantidad");
dtTabla.Columns.Add(
"Precio_Unitario");
dtTabla.Columns.Add(
"Importe");
if (Session["tablaMadera"] != null)
{
//txtArticuloMadera.Text = txtArticuloMadera.Text + 1;
dtTabla = (System.Data.
DataTable)Session["tablaMadera"];
DataRow drFila = dtTabla.NewRow();
drFila[
"Articulo"] = dtTabla.Rows.Count+1;
drFila[
"Descripcion"] = TextBox1.Text;
drFila[
"Unidad"] = lblUnidadMadera.Text;
drFila[
"Cantidad"] = txCantidadMadera.Text;
drFila[
"Precio_Unitario"] = lblPUMadera.Text;
drFila[
"Importe"] = lblImporteMadera.Text;
dtTabla.Rows.Add(drFila);
DataGrid6.DataSource = dtTabla;
}
else
{
DataRow drFila = dtTabla.NewRow();
drFila[
"Articulo"] = 1;
drFila[
"Descripcion"] = TextBox1.Text;
drFila[
"Unidad"] = lblUnidadMadera.Text;
drFila[
"Cantidad"] = txCantidadMadera.Text;
drFila[
"Precio_Unitario"] = lblPUMadera.Text;
drFila[
"Importe"] = lblImporteMadera.Text;
dtTabla.Rows.Add(drFila);
DataGrid6.DataSource = dtTabla;
}
Session[
"tablaMadera"] = dtTabla;
DataGrid6.DataBind();
}
catch (Exception ex)
{
string Error = ex.Message.ToString();
}
- Propuesto como respuesta Alex Sanyago jueves, 20 de mayo de 2010 23:39
-
Buen día Alberto, tengo el siguiente código, me indica que me excedo de argumentosen mi lineagrid, podrías ayudarme por favor?, corrigeme.
GRACIAS
Imports System.Data
Imports System.Data.SqlClient
Public Class lineagrid
Private albumid As Integer
Public Property _albumid() As Integer
Get
Return albumid
End Get
Set(ByVal value As Integer)
albumid = value
End Set
End Property
Private title As String
Public Property _title() As String
Get
Return title
End Get
Set(ByVal value As String)
value = title
End Set
End Property
Public Sub grid(ByVal albumid As Integer, ByVal title As String)
Me._albumid = albumid
Me._title = title
End Sub
End Class
Public Class Form1
Dim d As New List(Of lineagrid)()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.DataGridView1.DataSource = d
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
d.Add(New lineagrid("int", "string"))
End Sub
End Class -
O.K., vamos por pasos:
1) La clase para contener os datos de una linea:
Code Snippetclass LineaDelGrid
{
private string nombre;
public string Nombre { get { return nombre; } set { nombre=value; } }
private string apellido;
public string Apellido{ get { return apellido; } set { apellido=value; } }
private string edad;
public int Edad{ get { return edad; } set { edad=value; } }
public LineaDelGrid(string nombre, string apellido, int edad)
{
this,Nombre=nombre;
this.Apellido=apellido;
this.Edad=edad;
}
}
La clase anterior la puedes añadir como un archivo independiente al proyecto, o puedes pegar ese mismo código dentro del mismo fichero fuente del formulario que estás diseñando.
2) La colección para contener las lineas de grid. Esta tienes que declararla dentro de la clase de tu formulario:
Code SnippetList ColeccionDeLineas = new List();
3) El enlace con el GridView. Este puedes ponerlo, por ejemplo, dentro del Form_Load:
Code SnippetDataGirdView1.DataSource = ColeccionDeLineas;
4) Añadir una linea nueva. Esto lo metes en el Click del botón que tiene que pasar los textboxes al DataGridView:
Code SnippetLineaDelGrid lg = new LineaDelGrid(textBoxNombre.Text, textBoxApellido.Text, int.Parse(textBoxEdad.Text));
ColeccionDeLineas.Add(lg);
buenas tardes Sr. Alberto tengo un problema con estos pasos.
ya hice todos los pasos que se escribieron solo que me sale un error ya en el codigo del boton,
me sale este error:
LineaDelGrid" no contiene un constructor que tome argumentos '4'
es la unica linea que me sale error.
espero su ayuda muchas gracias
-
Hola amigo...
Si te fijas en el constructor de la clase LineaDelGrid notaras que tiene 3 parámetros:
public LineaDelGrid(string nombre, string apellido, int edad)
{
this,Nombre=nombre;
this.Apellido=apellido;
this.Edad=edad;
}
}
por lo tanto debes asegurarte de pasarle solo 3 parámetros al constructor de la clase, que concuerden con los definidos.. o si así lo deseas puedes hacer una sobrecarga del constructor de la clase LineaDelgrid para pasarle 4 parámetros, o 3 parámetros diferentes (de diferente tipo a los ya declarados). Saludos
-
-
Hola buenas tardes,
Yo se que éste post ya lleva un tiempo, pero he seguido los pasos como los indican y no me agrega la linea, no se si será que tengo algo malo en el gridview, él código que uso es:
class LineaDelGrid { private string parte; public string Parte { get { return parte; } set { parte = value; } } private string defecto; public string Defecto { get { return defecto; } set { defecto = value; } } private string operacion; public string Operacion { get { return operacion; } set { operacion = value; } } public LineaDelGrid(string parte, string defecto, string operacion) { Parte=parte; Defecto=defecto; Operacion=operacion; } } protected void btnAceptar_Click(object sender, EventArgs e) { LineaDelGrid lg = new LineaDelGrid(this.cboPartes.SelectedValue, this.cboDefectos.SelectedValue, this.cboOperaciones.SelectedValue); ColeccionLineas.Add(lg); this.GridView1.DataSource = ColeccionLineas; }
y en la clase tengo:
List<LineaDelGrid> ColeccionLineas=new List<LineaDelGrid>();
no se si tengo algún error, pero no me agrega la linea al gridview.
Gracias por la ayuda
-
Si tienes prolemas utilizando esos metodos, porque mejor no insertas tus datos en tu base de datos y luego recuperas la informacion en tu datagridview..
Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"
Blog
J.Joaquin -
Es que necesito guardarlo en la base de datos al final, cuando el usuario no agregue más lineas, es que el procedimiento es parecido al de una factura, donde en éste caso la información de los combos se compararía a los productos que llevaria determinado usuario,