Ir para conteúdo
Fórum Script Brasil
  • 0

Gridview carrega 2 vezes


decsousa

Pergunta

Ola pessoal,

Sou novo nessa area e estou aprendendo as coisas basicas em CRUD no VB, porem me deparei com uma situacao que não consigo resolver, ao inserir um cadastro o gridview atualiza em tempo real, mas ao atualizar um cadastro o gridview repete as informacoes apenas modificando a linha em questao, ou seja, duplica os dados.

 

Segue meu codigo.

 

obg

 

Imports MySql.Data.MySqlClient
Public Class cadastro_empresas
    Dim con As New MySqlConnection("#####################")
    Dim cmd As New MySqlCommand
    Dim adapt As New MySqlDataAdapter
    Dim dt As New DataTable()



    'SELECT BANCO E INSERE OS DADOS NO DATAGRID
    Sub carrega_dados()
        Dim query As String = "select * from empresas"
        Dim adapt As New MySqlDataAdapter(query, con)
        Dim ds As New DataSet()

        Try
            con.Open()
            adapt.Fill(dt)

            For Each row In dt.Rows
                Populate(row(0), row(1), row(2), row(3), row(4), row(5), row(6))
            Next
            con.Close()
            clearTxt()
            DataGridView1.Refresh()

        Catch ex As Exception
            MsgBox(ex.Message)
            con.Close()

        End Try

        con.Close()
    End Sub

    'CONSTROI POPULAR DATAGRID

    Private Sub Populate(id As String, nome As String, endereco As String, cidade As String, telefone As String, celular As String, contato As String)
        Dim row As String() = New String() {id, nome, endereco, cidade, telefone, celular, contato}

        DataGridView1.Rows.Add(row)

    End Sub



    'CADASTRAR INFORMAÇÕES

    Private Sub insert()
        Dim cadastra As String = "INSERT INTO empresas(nome, endereco, cidade, telefone, celular, contato) VALUES (@nome, @endereco, @cidade, @telefone, @celular, @contato)"

        cmd = New MySqlCommand(cadastra, con)

        cmd.Parameters.AddWithValue("@nome", nometxt.Text)
        cmd.Parameters.AddWithValue("@endereco", enderecotxt.Text)
        cmd.Parameters.AddWithValue("@cidade", cidadetxt.Text)
        cmd.Parameters.AddWithValue("@telefone", telefonetxt.Text)
        cmd.Parameters.AddWithValue("@celular", celulartxt.Text)
        cmd.Parameters.AddWithValue("@contato", contatotxt.Text)

        Try
            con.Open()

            If cmd.ExecuteNonQuery() > 0 Then
                MsgBox("Cadastrado")
                clearTxt()
                carrega_dados()
            End If
            con.Close()

        Catch ex As Exception
            MsgBox(ex.Message)
            con.Close()

        End Try
    End Sub



    'LIMPA CAMPOS FORMULARIO

    Private Sub clearTxt()
        nometxt.Text = ""
        enderecotxt.Text = ""
        cidadetxt.Text = ""
        telefonetxt.Text = ""
        celulartxt.Text = ""
        contatotxt.Text = ""
    End Sub



    'CONSTRUÇÃO DATAGRID, CARREGA OS DADOS E EXIBE USUARIO LOGADO

    Private Sub cadastro_empresas_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DataGridView1.ColumnCount = 7

        DataGridView1.Columns(0).Name = "id"
        DataGridView1.Columns(1).Name = "nome"
        DataGridView1.Columns(2).Name = "endereco"
        DataGridView1.Columns(3).Name = "cidade"
        DataGridView1.Columns(4).Name = "telefone"
        DataGridView1.Columns(5).Name = "celular"
        DataGridView1.Columns(6).Name = "contato"

        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect


        carrega_dados()
        sessao.Text = My.Forms.login.txtlogin.Text

    End Sub



    'EVENTO BOTAO CADASTRA
    Private Sub cadastraEmpresa_Click(sender As Object, e As EventArgs) Handles cadastraEmpresa.Click
        insert()
    End Sub





    'SCRIPT ATUALIZAÇÃO DE REGISTRO

    Private Sub atualizar(id As String)
        Dim sql As String = "UPDATE empresas SET nome='" + nometxt.Text + "',endereco='" + enderecotxt.Text + "',cidade='" + cidadetxt.Text + "',telefone='" + telefonetxt.Text + "',celular='" + celulartxt.Text + "',contato='" + contatotxt.Text + "' WHERE id='" + id + "'"

        Try
            con.Open()
            adapt.UpdateCommand = con.CreateCommand()
            adapt.UpdateCommand.CommandText = sql

            If adapt.UpdateCommand.ExecuteNonQuery() > 0 Then
                MsgBox("Registro atualizado com sucesso.")
                clearTxt()
                carrega_dados()

            End If
            con.Close()


        Catch ex As Exception
            MsgBox(ex.Message)
            con.Close()

        End Try
    End Sub




    'POPULAR TEXTBOX AO CLICAR NO DATAGRID

    Private Sub DataGridView1_MouseClick(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseClick

        Dim nome As String = DataGridView1.SelectedRows(0).Cells(1).Value
        Dim endereco As String = DataGridView1.SelectedRows(0).Cells(2).Value
        Dim cidade As String = DataGridView1.SelectedRows(0).Cells(3).Value
        Dim telefone As String = DataGridView1.SelectedRows(0).Cells(4).Value
        Dim celular As String = DataGridView1.SelectedRows(0).Cells(5).Value
        Dim contato As String = DataGridView1.SelectedRows(0).Cells(6).Value

        nometxt.Text = nome
        enderecotxt.Text = endereco
        cidadetxt.Text = cidade
        telefonetxt.Text = telefone
        celulartxt.Text = celular
        contatotxt.Text = contato

    End Sub

    Private Sub btnAtualizar_Click(sender As Object, e As EventArgs) Handles btnAtualizar.Click
        Dim id As String = DataGridView1.SelectedRows(0).Cells(0).Value
        atualizar(id)

    End Sub
End Class

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...