none
guardar las filas de un datagridview a una tabla con un procedimiento almacenado RRS feed

  • Pregunta

  • Hola a tods estoy trabajando con datagriview en c# 2008  y necesito guardar las filas de dicho datagridview

    por medio de un procedimiento almacenado que ya esta hecho en sql server 2005...

    DLL_SAN_Pablos.ClsComprArticulos objComprArticulos = new ClsComprArticulos();

     private void btn_guardarC_Click(object sender, EventArgs e)
            {


                string code;
                string cost;
                string cantc;


                int idp = objComprArticulos.Id_proveedor;

                int cod = objComprArticulos.Cod_articulo;
                float co = objComprArticulos.Costo_Unitario;
                int cantcomp = objComprArticulos.Cantidad;
               
                   if (dgv_detalle_NotaCompra.Rows.Count > 0) {
                    for (int i = 0; i <=dgv_detalle_NotaCompra.Rows.Count - 1; i++) {



                        objComprArticulos.Num_nota = txb_num_nota.Text.Trim();

                        idp = int.Parse(this.lbl_muetraIdProveedor.Text.Trim());
                        objComprArticulos.Id_almacen = int.Parse(this.cbx_almacen.SelectedValue.ToString());
                        code = dgv_detalle_NotaCompra.Rows[i].Cells["cod_articulo"].Value.ToString();
                        cod = int.Parse(code);
                        cost=dgv_detalle_NotaCompra.Rows[i].Cells["precio_costo"].Value.ToString();
                        co =(float.Parse( cost));
                        cantc= dgv_detalle_NotaCompra.Rows[i].Cells["cantidad"].Value.ToString();
                        cantcomp = int.Parse(cantc);
                        objComprArticulos.Fecha_Compra = Convert.ToDateTime(this.dateTimePicker1.Value.ToString());
                         objComprArticulos.AgregarDetalleCompras();
                        }
                    MessageBox.Show("datosGuardados");


     }

     }

    aqui esta el codigo ke he elaborado....pero no guarda nada en mi bd.

    domingo, 17 de abril de 2011 11:28

Todas las respuestas

  • hola

    un consejo, si vas a recorrer un DatagridView, hazlo en un foreach


    if (dgv_detalle_NotaCompra.Rows.Count > 0)
    {
        foreach (DataGrdiView row in dgv_detalle_NotaCompra.Rows)
        {
            objComprArticulos.Num_nota = txb_num_nota.Text.Trim();

            idp = int.Parse(this.lbl_muetraIdProveedor.Text.Trim());
            objComprArticulos.Id_almacen = int.Parse(this.cbx_almacen.SelectedValue.ToString());
            code = row.Cells["cod_articulo"].Value.ToString();
            cod = int.Parse(code);
            cost=row.Cells["precio_costo"].Value.ToString();
            co =(float.Parse(cost));
            cantc= row.Cells["cantidad"].Value.ToString();
            cantcomp = int.Parse(cantc);
            objComprArticulos.Fecha_Compra = Convert.ToDateTime(this.dateTimePicker1.Value.ToString());
           
            objComprArticulos.AgregarDetalleCompras();
        }
    }

    como veras queda algo mas corto el codigo para acceder a la row de cada loop

     

    algo que note ademas es que estas creando la entidad poniendole los datos, pero nunca invocas al DataContect

    veras que alli se invoca al
    context.SaveChanges()
    esa parte no veo que la estes usando

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 17 de abril de 2011 14:00