none
DATATABLE EN C# RRS feed

  • Pregunta

  • Buenas tardes a todos, alguien que me pueda apoyar con lo siguiente?

    Tengo este datatable en uno de mis formularios, pero no se en que parte de mi codigo deberia declararlo-añaidrlo para mandarlo guardar a una de mis tablas en sql.

    //Mis tablas en sql, una para guardar informacion del cliente y la otra para informacion de un prestamo

    Use BD
    Create table Clientes_Semanales(
    Id_Prestamo int identity (1,1) primary key not null,
    Nombre varchar (50),
    Direccion varchar (50),
    Telefono varchar (15),
    Correo varchar (50),
    Capital decimal (18,0),
    Tasa_Mensual nchar(2),
    Plazo date,
    Inicio date,
    Pago nchar (2))

    Create table Prestamos_Semanales(
    Id_Prestamo int not null,
    Num_Cuota INT not null,
    Semana date,
    Capital_Interes decimal (18,0),
    Fecha date,
    Pago_Semanal decimal (18,0),
    Saldo decimal (18,0),
    primary key (ID_Prestamo, Num_Cuota),
    constraint fk_Prestamos foreign key (Id_Prestamo) references Clientes_Semanales (Id_Prestamo)
    on update cascade
    on delete cascade
    )

    Agradezco a Javi Fernandez quien fue que dijo que de esta manera podia guardar y relacionar la amortizacion de la tabla prestamos semanales a la tabla clientes semanales, pero aun con esto no logro que el programa haga lo que se necesita.

    //Mi SP con el cual intento hacer pruebas para ver si guarda los registros de la amortizacion en la tabla de prestamos semanales, pero simplemente no hace nada, no marca error pero no guarda los registros.

    ALTER Procedure [dbo].[Amortizacion](
    @Num_Cuota int,
    @Capital_Interes decimal(18,0),
    @Fecha date,
    @Pago_Semanal decimal(18,0),
    @Saldo decimal(18,0),
    @Inicio_a_pagar date)
    As
    Begin
    Insert into dbo.Prestamos_Semanales(Num_Cuota,Capital_Interes,Fecha,Pago_Semanal,Saldo,Inicio_a_pagar)
    Values(@Num_Cuota,@Capital_Interes,@Fecha,@Pago_Semanal,@Saldo,@Inicio_a_pagar) Select SCOPE_IDENTITY()
    End

    //Mi datatable en uno de los forms, este es el codigo del boton con el cual genero la amortizacion una vez que se capturan los datos necesarios de los cuales en los textbox, como plazo, monto, interes, fecha de inicio a pagar etc.

     private void Btn3_Click(object sender, EventArgs e)
            {
                if (string.IsNullOrEmpty(TxtMonto.Text) || string.IsNullOrEmpty(TxtPlazo.Text) ||
                   string.IsNullOrEmpty(TxtTasa.Text))
                {
                    MessageBox.Show("Capture capital, tasa y plazo.");
                    return;
                }
                Semanal();
            }
            private void Semanal()
            {
                DataTable dt = new DataTable();
               
                dt.Columns.Add("Num_Cuota", typeof(int));
                dt.Columns.Add("Capital+Interes", typeof(double));
                dt.Columns.Add("Fecha", typeof(string));
                dt.Columns.Add("PagoSemanal", typeof(double));
                dt.Columns.Add("Saldo", typeof(double));
                DateTime Fecha = DateTimePicker1.Value;

                double StrMonto = Convert.ToDouble(this.TxtMonto.Text);
                double Plazo = Convert.ToDouble(this.TxtPlazo.Text);
                double Interes = Convert.ToDouble(this.TxtTasa.Text);

                double PagoSemanal = Math.Round(StrMonto * Interes / 100 / 4 + StrMonto/Plazo);
                double Interes1 = Interes;
                double Saldo0 = StrMonto;
                double Saldo = Math.Round(Saldo0 * Interes1 / 100 * Plazo/4 + Saldo0);
                double Capital = Math.Round(Saldo0 * Interes1 / 100 * Plazo/4 + Saldo0);

                for (int i = 1; i <= Plazo; i++)
                {
                    Saldo = Saldo - PagoSemanal;
                    dt.Rows.Add(i, Capital, Fecha.ToString("dd/MM/yyyy"), PagoSemanal, Saldo);
                    
                    Fecha = Fecha.AddDays(7);
                }
                DataGridView1.DataSource = dt;
            }

    //Codigo de mi boton con el cual intento enviar la informacion generada por el boton 3 para mi datatable a mi bd

    private void Btn4_Click(object sender, EventArgs e)
            {
                using (SqlConnection connection = new SqlConnection("Cadena de conexion"))
                {
                    if (string.IsNullOrEmpty(TxtMonto.Text) ||
                        string.IsNullOrEmpty(TxtTasa.Text) ||
                        string.IsNullOrEmpty(TxtPlazo.Text))
                    {
                        MessageBox.Show("Favor de capturar la informacion completa para generar prestamo.");
                        return;
                    }
                    connection.Open();
                    SqlCommand comando = new SqlCommand("SP_Amortizacion", connection)
                    {
                        CommandType = CommandType.StoredProcedure
                    };
                    comando.Parameters.AddWithValue("@Num_Cuota", typeof(int));
                    comando.Parameters.AddWithValue("@Capital+Interes", typeof(double));
                    comando.Parameters.AddWithValue("@Fecha", typeof(string));
                    comando.Parameters.AddWithValue("@PagoSemanal", typeof(double));
                    comando.Parameters.AddWithValue("@Saldo", typeof(double));
                    comando.Parameters.AddWithValue("@Inicio_a_pagar", DateTimePicker1.Value);
                    connection.Close();
                }

    Como es que tengo que anexar esa parte del boton 3 para que se guarde en mi bd?

    De antemano mil gracias por la ayuda.

    domingo, 25 de agosto de 2019 23:33

Respuestas

  • hola

    >>Como es que tengo que anexar esa parte del boton 3 para que se guarde en mi bd?

    lo que noto es que nunca ejecutas el procedure, despeus de los parametros te falta la linea

    comando.ExecuteNonQuery();

    sino la invocacion al procedure nunca se realiza

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 26 de agosto de 2019 5:16

Todas las respuestas

  • hola

    >>Como es que tengo que anexar esa parte del boton 3 para que se guarde en mi bd?

    lo que noto es que nunca ejecutas el procedure, despeus de los parametros te falta la linea

    comando.ExecuteNonQuery();

    sino la invocacion al procedure nunca se realiza

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 26 de agosto de 2019 5:16
  • Gracias por responder Leandro, pero me marca error, he estado buscando informacion respecto a ese error pero no logro resolverlo, de igual forma se te agradece mucho el tomarte el tiempo por responder.
    sábado, 31 de agosto de 2019 21:55