
Añadir línea al datagrid con cada clic
Publicado por Jhon (7 intervenciones) el 20/03/2016 04:30:12
Saludos gente!
Espero que puedan ayudarme porque se me acaba el plazo para entregar esta actividad :(
Tengo que hacer una aplicación de C# para una tienda (Soy estudiante de análisis y desarrollo de sistemas de información). La tengo que hacer en C# y SQL Server (NInguna de las dos cosas las había tocado nunca) y hasta ahora me estaba yendo muy bien. Pero me he quedado atascado.
He creado perfectamente los formularios y clases para el CRUD de clientes, proveedores, productos, empleados, etc.
Sólo me falta la parte de facturación pero me he quedado en un punto y no entiendo el motivo:
En los otros formularios, crear un empelado por ejemplo, yo lleno los textbox, le doy crear y se realiza. Vuelvo a cambiarlos vuelvo a hacerlo y así todas las veces que quiera.
Pero en la facturación no me funciona así.
Tengo un combobox (Exigencia del ejercicio que sea combobox) donde están mis productos, un numericupdown para la cantidad y un botón de añadir.
Escojo el producto tal, tantas unidades y al darle a añadir efectúa una consulta join para enviar a un datagridview nombre, precio y cantidad. Hasta ahí bien.

Observen que le di añadir y se agregó. Ahora quiero añadir otro producto al datagrid porque el cliente quiere comprar otra cosa. Cambio el producto en el combobox, cambio la cantidad, le doy a añadir y.... Nada!!!
No entiendo por qué pero sólo funciona la primera y necesito ir añadiendo al datagrid los demás productos hasta que le de finalizar.
Mi datagrid se "alimenta" de una lista de objetos.
Hasta ahora he venido trabajando muy contento con C# a pesar de no haberlo tocado nunca ni haber usado nunca programación en capas, seguro que es una tontería pero he hecho un montón de formularios para esta app sin ese problema. Y el tiempo ya me apremia.
Gracias de antemano.
Espero que puedan ayudarme porque se me acaba el plazo para entregar esta actividad :(
Tengo que hacer una aplicación de C# para una tienda (Soy estudiante de análisis y desarrollo de sistemas de información). La tengo que hacer en C# y SQL Server (NInguna de las dos cosas las había tocado nunca) y hasta ahora me estaba yendo muy bien. Pero me he quedado atascado.
He creado perfectamente los formularios y clases para el CRUD de clientes, proveedores, productos, empleados, etc.
Sólo me falta la parte de facturación pero me he quedado en un punto y no entiendo el motivo:
En los otros formularios, crear un empelado por ejemplo, yo lleno los textbox, le doy crear y se realiza. Vuelvo a cambiarlos vuelvo a hacerlo y así todas las veces que quiera.
Pero en la facturación no me funciona así.
Tengo un combobox (Exigencia del ejercicio que sea combobox) donde están mis productos, un numericupdown para la cantidad y un botón de añadir.
Escojo el producto tal, tantas unidades y al darle a añadir efectúa una consulta join para enviar a un datagridview nombre, precio y cantidad. Hasta ahí bien.
Observen que le di añadir y se agregó. Ahora quiero añadir otro producto al datagrid porque el cliente quiere comprar otra cosa. Cambio el producto en el combobox, cambio la cantidad, le doy a añadir y.... Nada!!!
No entiendo por qué pero sólo funciona la primera y necesito ir añadiendo al datagrid los demás productos hasta que le de finalizar.
Mi datagrid se "alimenta" de una lista de objetos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
List<Facdetalles> listaDetalles = new List<Facdetalles>(); //Al final esto irá a mi tabla de detalles
List<JoinFactura> listaFactura = new List<JoinFactura>(); //Esta es la que alimenta el datagridview
private void btnanadir_Click(object sender, EventArgs e)
{
if (txtfactura.Text == "0" || txtcanti.Text =="0") //La factura es numérica por exigencia del ejercicio
{
MessageBox.Show("No has colocado el número de factura o la cantidad", "Naturvida dice:");
}
else {
int procodigo = ProductosDAL.buscaUnProducto(cmbprod.Text);//Obtiene la clave foránea idProducto
Facdetalles det = new Facdetalles();
JoinFactura datos = new JoinFactura(); //Es el objeto con los datos que van a a lista que alimenta el datagrid
det.facNumerofk = Convert.ToInt32(txtfactura.Text);
det.facProductofk = procodigo;
datos.producto = JoinFacturaDAL.producto(det.facProductofk);
det.facCantidad = Convert.ToInt32(txtcanti.Text);
datos.precio = JoinFacturaDAL.valor(det.facProductofk);
datos.cantidad = det.facCantidad;
listaDetalles.Add(det);
listaFactura.Add(datos);
gridDetalles.DataSource = listaFactura;
}
}
Hasta ahora he venido trabajando muy contento con C# a pesar de no haberlo tocado nunca ni haber usado nunca programación en capas, seguro que es una tontería pero he hecho un montón de formularios para esta app sin ese problema. Y el tiempo ya me apremia.
Gracias de antemano.
Valora esta pregunta


0