none
Cargar valores a un DataGridView RRS feed

  • Pregunta

  • Hola a todos!.
    Tengo un pequeño inconveniente con ingresar valores a un DataGridView, la mecánica de mi programa es la siguiente.

    En SQL Server tengo una base de datos y dentro de esta base se genera una tabla donde actualizo sus datos con procedimientos almacenados y los datos los tomo de Textbox que están en mi formulario, los procedimientos almacenados funcionan de manera correcta y la visualización del DGV. 
    El problema que tengo es que cuando se inicia el formulario una columna su valores deben ser 0 y algunos datos deben cambiar de columnas, cuando se inicia el programa por primera vez los datos se acomodan de manera correcta, pero cuando mando a llamar un procedimiento almacenado es cuando la función que puse cuando carga el formulario parecería que hace todo de nuevo, espero puedan ayudarme y agradezco que tomen su tiempo para ayudarme muchas gracias.

    Form_Load

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim linea As DataGridViewRow
            For Each linea In DataGridView1.Rows
                linea.Cells(6).Value = 0.00
                linea.Cells(7).Value = 0.00
                linea.Cells(4).Value = 0.00
                linea.Cells(5).Value = 0.00
                linea.Cells(12).Value = 0.00
                linea.Cells(13).Value = 0.00
                linea.Cells(16).Value = 0.00
                linea.Cells(3).Value = 0.00
                reg.id_usuario = linea.Cells(0).Value
                reg.Nombre = linea.Cells(1).Value
                reg.Fecha_Colecta = "1/11/2020" 'DateTime.Now.ToString("dd/MM/yyyy")
                reg.Ahorro = linea.Cells(3).Value
                reg.Retiro = linea.Cells(4).Value
                reg.Descap = 0
                reg.Saldo_Ant_Ahorro = linea.Cells(8).Value
                reg.Saldo_Ahorro = linea.Cells(8).Value
                reg.Calculo_Prestamo = (linea.Cells(8).Value * 2.5)
                reg.Fecha_Ingreso = "1/11/2020"
                reg.Interes = linea.Cells(10).Value
                reg.Saldo_Ant_Prestamo = linea.Cells(14).Value
                reg.Pago_Semanal = 0
                reg.Abono_Prestamo = 0
                reg.Saldo_Prestamo = linea.Cells(14).Value
                func.Modificar_Socio(reg)
            Next
    
    End Sub
    
    

    jueves, 19 de noviembre de 2020 22:07

Todas las respuestas

  • Hola J. Abraham Leon, 

      

    A que te refieres con parece que hace todo de nuevo? como se muestra en el dgv? en donde llamas al procedimiento almacenado?

    Gracias por usar los foros de MSDN.  

    Andres Aguilar 

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    viernes, 20 de noviembre de 2020 18:15
    Moderador
  • Hola!, Muchas gracias por la ayuda!. 

    Lo que intento hacer es, que cuando inicie mi formulario las datos de a columna Ahorro se hagan en 0 (Porque se guarda el valor que el usuario ingresa para ahorrar) y el valor que tengo en Saldo_Ant_Ahorro por Saldo_Ahorro.

    Cuando se presiona el botón abono semanal, mando llamar un formulario en donde los valores del textbox se almacenan en las celdas del DGV.  


    Para mostrar el dgv utilizo la funcion "DataGridView1.DataSource = func.Mostrar_Socio" dentro de mi Load mismo donde cargo los valores al data dgv.

    La funcion mostrar socio es la siguiente

       Public Function Mostrar_Socio() As DataTable
            Try
                cn.Open()
                cmd = New SqlCommand("SP_MostrarSocio", cn)
                cmd.CommandType = CommandType.StoredProcedure
                If cmd.ExecuteNonQuery() Then
                    Dim da As New SqlDataAdapter(cmd)
                    Mostrar_Socio = New DataTable
                    da.Fill(Mostrar_Socio)
                    Return Mostrar_Socio
                Else
                    Return Nothing
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
                Return Nothing
            Finally
                cn.Close()
            End Try
        End Function

    y tengo un boton llamado "abono semanal" en donde mando a llamar una funcion llamada "modificar_socio"

    Codiogo boton abonar

     reg.id_usuario = Home.TextBox1.Text
                    reg.Nombre = Home.TextBox2.Text
                    reg.Retiro = Home.TextBox5.Text
                    reg.Descap = Home.TextBox6.Text
                    reg.Saldo_Ant_Ahorro = Home.TextBox8.Text
                    reg.Saldo_Ahorro = Convert.ToDouble(Home.TextBox8.Text) + Convert.ToDouble(TextBox3.Text)
                    reg.Calculo_Prestamo = Home.TextBox9.Text
                    reg.Fecha_Ingreso = Home.FechaIngreso.Text
                    reg.Interes = Home.TextBox11.Text - Home.TextBox11.Text + TextBox2.Text
                    reg.Saldo_Ant_Prestamo = Home.TextBox12.Text
                    reg.Pago_Semanal = Home.TextBox13.Text
                    reg.Abono_Prestamo = Home.TextBox14.Text - Home.TextBox14.Text + TextBox1.Text
                    reg.Saldo_Prestamo = Home.TextBox15.Text - TextBox1.Text
                    reg.Ahorro = TextBox3.Text
                    reg.Fecha_Colecta = "1/11/2020" 'DateTime.Now.ToString("dd/MM/yyyy")
                    Dim MS As New IO.MemoryStream()
                    If func.Modificar_Socio(reg) Then
                        MessageBox.Show("Se a generado el abono correctamente", "Abono Semanal")
                        Home.DataGridView1.DataSource = func.Mostrar_Socio
                        Home.LINEN.Text = Convert.ToDouble(Home.LINEN.Text) + TextBox2.Text
                        Module1.LTOT()
                        Home.LAHO.Text = Convert.ToDouble(Home.LAHO.Text) + Convert.ToDouble(TextBox3.Text)
                        Home.LABOPRES.Text = Convert.ToDouble(Home.LABOPRES.Text) + Convert.ToDouble(TextBox1.Text)
                        Home.LINT.Text = Convert.ToDouble(Home.LINT.Text) + Convert.ToDouble(TextBox2.Text)
                        Home.LTOT2.Text = Convert.ToDouble(Home.LAHO.Text) + Convert.ToDouble(Home.LABOPRES.Text) + Convert.ToDouble(Home.LINT.Text)
                        Module1.Ahorrovs()
                        Module1.EfectivoIntereses()
                        Module1.EfectivoPesitos()
                        Module1.EfectivoCaja()
                        Me.Close()
                    End If


       Public Function Mostrar_Socio() As DataTable
            Try
                cn.Open()
                cmd = New SqlCommand("SP_MostrarSocio", cn)
                cmd.CommandType = CommandType.StoredProcedure
                If cmd.ExecuteNonQuery() Then
                    Dim da As New SqlDataAdapter(cmd)
                    Mostrar_Socio = New DataTable
                    da.Fill(Mostrar_Socio)
                    Return Mostrar_Socio
                Else
                    Return Nothing
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
                Return Nothing
            Finally
                cn.Close()
            End Try
        End Function


    viernes, 20 de noviembre de 2020 19:15
  • Trabajaba bien el programa con el botón Abono semanal, pero ahora que inicie mis celdas en 0 cuando cargo los valores del formulario Abono semanal nuevamente se me hacen todos en 0

    Aquí trabaja de manera correcta, pero los valores del DGV no están ordenados con el código de 

    Y aqui si ordeno las datos pero cuando cambio los valores nuevamente me hace todos 0

    viernes, 20 de noviembre de 2020 19:28