none
Ayuda !!!! Visual Basic.Net Problema con guardar Datagridviews leer... RRS feed

  • Debate general

  • Hola a Todos, Espero que esten muy bien, estoy trabajando el lenguaje vb.net con mysql , pero si pueden con sql no hay problema

     y  tengo  2  problemas 

    #1 -  Lo que sucede es que tengo un datagridview  que  lo lleno de la siguiente  manera...

     Private Sub llellenar_midatagrid familias()
            Try
                Sql = "Select lin_lin,nom_lin,cuenta,nombre,ccuenta1nombre1,CUENTA2,NOMBRE2,lin from INV004I order by lin_lin"
                Adaptador = New MySqlDataAdapter(Sql, CONEX)
                Dtsdatos = New DataSet
                Adaptador.Fill(Dtsdatos, "INV004I")
                DataGridView1.DataSource = Dtsdatos
                DataGridView1.DataMember = "INV004I"
                DataGridView1.Refresh()
                DataGridView1.Columns("Lin").Visible = False
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub

    Resulta que tengo  2  botones uno que  es  para agregar  : lo presiono y va a la última fila del datagridview para yo escriba. (perfecto).

    pero el otro botón que es el de guardar, guarda el dato , pero la información que traía la guarda  doble y  solo quiero que se  guarden esos datos nuevos. con este código ... con este ocupo esa ayuda .

      Private Sub Guardar_Click(sender As Object, e As EventArgs) Handles Btn3.Click
            Try
    Dim agregar As MySqlCommand = New MySqlCommand("Insert into INV004I  values  (?lin_lin, ?nom_lin, ?cuenta, ?nombre, ?cuenta1, ?nombre1, ?CUENTA2, ?NOMBRE2, ?lin) ", conn)

            Dim fila As DataGridViewRow = New DataGridViewRow()
            For Each fila In DataGridView1.Rows
            agregar.Parameters.Clear()
            agregar.Parameters.Add("?lin_lin", MySqlDbType.VarChar, 45).Value = Convert.ToString(fila.Cells("lin_lin").Value)
            agregar.Parameters.Add("?nom_lin", MySqlDbType.VarChar, 100).Value = Convert.ToString(fila.Cells("nom_lin").Value)
             agregar.Parameters.Add("?cuenta", MySqlDbType.VarChar, 45).Value = Convert.ToString(fila.Cells("cuenta").Value)
            agregar.Parameters.Add("?nombre", MySqlDbType.VarChar, 100).Value = Convert.ToString(fila.Cells("nombre").Value)
            agregar.Parameters.Add("?cuenta1", MySqlDbType.VarChar, 45).Value = Convert.ToString(fila.Cells("cuenta1").Value)
            agregar.Parameters.Add("?nombre1", MySqlDbType.VarChar, 100).Value = Convert.ToString(fila.Cells("nombre1").Value)
           agregar.Parameters.Add("?CUENTA2", MySqlDbType.VarChar, 45).Value = Convert.ToString(fila.Cells("CUENTA2").Value)
           agregar.Parameters.Add("?NOMBRE2", MySqlDbType.VarChar, 100).Value = Convert.ToString(fila.Cells("NOMBRE2").Value)
           agregar.Parameters.Add("?lin", MySqlDbType.Int16).Value = Convert.ToString(fila.Cells("lin").Value)
          agregar.ExecuteNonQuery()
          Next
                MsgBox("Se han guardado los datos")
            Catch ex As Exception
                MsgBox(ex.Message)

     End Try
        End Sub

    #2 - Esque ocupo guardar  en la base de datos    muchos textbox  y lo que contenga el datagridview ...

    tengo la manera de hacer lo pero al guardar   en la base de datos lo guarda en diferentes filas  

    los texbox  en una fila y  lo del datagridview en la fila que sigue

     aca esta el codigo    pero  me gustaria que me  brindaran uno mejor o como corregirlo.

    *este es otro form no tiene que ver con el anterior

     Private Sub guardar_Click(sender As Object, e As EventArgs) Handles guardar.Click

            If (Me.TextBox1.Text = "") Then
                MsgBox("EL CAMPO Orden NO PUEDE ESTAR VACIO", MsgBoxStyle.Critical, "ATENCION")
                Me.TextBox1.Select()
            Else
    Dim agregar As MySqlCommand = New MySqlCommand("Insert into orden3 (cant,unidad,detalle,cuenta,nombre,monto) values (@cant, @unidad, @detalle,@cuenta,@nombre,@monto)", CONEX)

    Dim fila As DataGridViewRow = New DataGridViewRow()
    For Each fila In DataGridView1.Rows
    agregar.Parameters.Clear()
    agregar.Parameters.Add("@cant", MySqlDbType.Double, 12).Value = Convert.ToString(fila.Cells("Column1").Value)
    agregar.Parameters.Add("@unidad", MySqlDbType.VarChar, 15).Value = Convert.ToString(fila.Cells("Column2").Value)
    agregar.Parameters.Add("@detalle", MySqlDbType.VarChar, 90).Value = Convert.ToString(fila.Cells("Column3").Value)
    agregar.Parameters.Add("@cuenta", MySqlDbType.VarChar, 35).Value = Convert.ToString(fila.Cells("Column4").Value)
    agregar.Parameters.Add("@nombre", MySqlDbType.VarChar, 90).Value = Convert.ToString(fila.Cells("Column5").Value)
    agregar.Parameters.Add("@monto", MySqlDbType.Double).Value = Convert.ToString(fila.Cells("Column6").Value)
                
             

      Dim orden As Integer
     Dim SRS As String = ""
    Dim concepto As String = ""
    Dim concepto2 As String = ""
    Dim proyecto As String = ""
    Dim cedjur As String = ""
     Dim observacion1 As String = ""
     Dim observacion2 As String = ""
    orden = Me.TextBox1.Text

    SRS = Me.TextBox4.Text
    concepto = Me.TextBox5.Text
    concepto2 = Me.TextBox24.Text
    proyecto = Me.TextBox6.Text
    cedjur = Me.TextBox7.Text

                    CMD.CommandType = CommandType.Text
                    CMD.Connection = CONEX
    Sql = "insert into orden3(orden, beneficia, Deta1, Deta2, acuerdo, juridica, Deta1a, Deta2a)"

     Sql += "VALUES(" & orden & ",'" & SRS & "','" & concepto & "','" & concepto2 & "','" & proyecto & "','" & cedjur & "','" & observacion1 & "','" & observacion2 & "')"
                    CMD.CommandText = Sql
                Next

                Try
                    CMD.ExecuteNonQuery()
                    agregar.ExecuteNonQuery()
                    MsgBox("REGISTRO INCLUIDO")
                    Me.TextBox1.Text = ""
                    Me.TextBox4.Text = ""
                    Me.TextBox5.Text = ""
                    Me.TextBox24.Text = ""
                    Me.TextBox6.Text = ""
                    Me.TextBox7.Text = ""
                    Me.TextBox21.Text = ""
                    Me.TextBox22.Text = ""
                    Me.TextBox8.Text = ""
                    Me.TextBox9.Text = ""
                    Me.TextBox10.Text = ""
                    Me.TextBox11.Text = ""
                    Me.TextBox12.Text = ""
                    Me.TextBox13.Text = ""
                    Me.DataGridView1.DataSource = Nothing
                Catch ex As Exception
                    MsgBox(ex.Message)
                    'If ex.ToString.Contains("VALORES DUPLICADOS") Then
                    '    MsgBox("REGISTRO YA EXISTE ")
                    Me.TextBox1.Text = ""
                    Me.TextBox4.Text = ""
                    Me.TextBox5.Text = ""
                    Me.TextBox24.Text = ""
                    Me.TextBox6.Text = ""
                    Me.TextBox7.Text = ""
                    Me.TextBox21.Text = ""
                    Me.TextBox22.Text = ""
                    Me.TextBox8.Text = ""
                    Me.TextBox9.Text = ""
                    Me.TextBox10.Text = ""
                    Me.TextBox11.Text = ""
                    Me.TextBox12.Text = ""
                    Me.TextBox13.Text = ""
                    Me.DataGridView1.DataSource = Nothing
                
                    CONEX.Close()
                End Try
            End If
        
        End Sub

    • Cambiado Enrique M. Montejo viernes, 3 de febrero de 2017 7:10 Pregunta relacionada con controles de Windows Forms.
    miércoles, 1 de febrero de 2017 3:10