Insert datagrid data view C # ASP.NET [closed]

1

I am creating a sales system, at the time a sale is registered I want the products that are in a datagridview with the ID of the sale inserted

In my SALE class I have the following code:

public string Insertar(Venta Venta, List<DetalleVenta> Detalle)
{
    string rpta = "";
    SqlConnection SqlCon = new SqlConnection();
    try
    {
        //Código
        SqlCon.ConnectionString = cadena;
        SqlCon.Open();
        //Establecer la trasacción
        SqlTransaction SqlTra = SqlCon.BeginTransaction();
        //Establecer el Comando
        SqlCommand SqlCmd = new SqlCommand();
        SqlCmd.Connection = SqlCon;
        SqlCmd.Transaction = SqlTra;
        SqlCmd.CommandText = "spinsertar_venta";
        SqlCmd.CommandType = CommandType.StoredProcedure;

        SqlParameter ParIdventa = new SqlParameter();
        ParIdventa.ParameterName = "@idventa";
        ParIdventa.SqlDbType = SqlDbType.Int;
        ParIdventa.Direction = ParameterDirection.Output;
        SqlCmd.Parameters.Add(ParIdventa);

        SqlParameter ParIdEmpleado = new SqlParameter();
        ParIdEmpleado.ParameterName = "@idEmpleado";
        ParIdEmpleado.SqlDbType = SqlDbType.Int;
        ParIdEmpleado.Value = Venta.Idempleado;
        SqlCmd.Parameters.Add(ParIdEmpleado);

        SqlParameter ParIdCliente = new SqlParameter();
        ParIdCliente.ParameterName = "@idCliente";
        ParIdCliente.SqlDbType = SqlDbType.Int;
        ParIdCliente.Value = Venta.Idcliente;
        SqlCmd.Parameters.Add(ParIdCliente);

        //Ejecutamos nuestro comando

        rpta = SqlCmd.ExecuteNonQuery() == 1 ? "NO se Ingresó el Registro" : "OK";

        if (rpta.Equals("OK"))
        {
            //Obtener el código del ingreso generado
            Idventa = Convert.ToInt32(SqlCmd.Parameters["@idventa"].Value);
            foreach (DetalleVenta det in Detalle)
            {
                det.Idventa = Idventa;
                //Llamar al método insertar de la clase DDetalle_Ingreso
                rpta = det.Insertar(det, ref SqlCon, ref SqlTra);
                if (!rpta.Equals("OK"))
                {
                    break;
                }
                else
                {
                    if (!rpta.Equals("OK"))
                    {
                        break;
                    }
                }
            }

        }


        if (rpta.Equals("OK"))
        {
            SqlTra.Commit();
        }
        else
        {
            SqlTra.Rollback();
        }
    }
    catch (Exception ex)
    {
        rpta = ex.Message;
    }
    finally
    {
        if (SqlCon.State == ConnectionState.Open) SqlCon.Close();
    }
    return rpta;

}

In my INTERMEDIATE class I have this code:     // METHOD FOR SALES

public static string InsertarVenta(int idempleado, int idcliente, DataTable dtDetalle)
{
    Venta Obj = new Venta();
    Obj.Idempleado = idempleado;
    Obj.Idcliente = idcliente;

    List<DetalleVenta> detalles = new List<DetalleVenta>();
    foreach (DataRow row in dtDetalle.Rows)
    {
        DetalleVenta detalle = new DetalleVenta();
        detalle.Idproducto = Convert.ToInt32(row["idProducto"].ToString());
        detalle.Cantidad = Convert.ToInt32(row["Cantidad"].ToString());
        detalle.Precio = Convert.ToSingle(row["Precio"].ToString());
        detalles.Add(detalle);
    }
    return Obj.Insertar(Obj, detalles);
}

And on the form's Button I have the following code:

    try
    {
        if (!datalistadoDetalle.Rows.Count.Equals(0))
        {
            string rpta = "";
                rpta = Intermedio.InsertarVenta(Convert.ToInt32(txtEmpleado.SelectedValue.ToString()),
                    Convert.ToInt32(txtCliente.SelectedValue.ToString()), dtDetalle);

            error.Text = rpta;
            if (rpta.Equals("OK"))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Se ha insertado correctamente la venta')", true);

            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Ha ocurrido un error al registrar la venta')", true);
            }
            limpiarDetalle();
        }
        else
        {
            ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Debe de agregar un producto para vender.')", true);
        }
    }
    catch (Exception ex)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Ha ocurrido un error inesperado al registrar la venta')", true);
    }
    
asked by Aldo M. Capitanachi 30.07.2016 в 04:46
source

0 answers