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
ImportsMySql.Data.MySqlClientPublicClass cadastro_empresas
Dim con AsNewMySqlConnection("#####################")Dim cmd AsNewMySqlCommandDim adapt AsNewMySqlDataAdapterDim dt AsNewDataTable()'SELECT BANCO E INSERE OS DADOS NO DATAGRID
Sub carrega_dados()Dim query AsString="select * from empresas"Dim adapt AsNewMySqlDataAdapter(query, con)Dim ds AsNewDataSet()Try
con.Open()
adapt.Fill(dt)ForEach row In dt.RowsPopulate(row(0), row(1), row(2), row(3), row(4), row(5), row(6))Next
con.Close()
clearTxt()DataGridView1.Refresh()Catch ex AsExceptionMsgBox(ex.Message)
con.Close()EndTry
con.Close()EndSub'CONSTROI POPULAR DATAGRID
PrivateSubPopulate(id AsString, nome AsString, endereco AsString, cidade AsString, telefone AsString, celular AsString, contato AsString)Dim row AsString()=NewString(){id, nome, endereco, cidade, telefone, celular, contato}DataGridView1.Rows.Add(row)EndSub'CADASTRAR INFORMAÇÕES
PrivateSub insert()Dim cadastra AsString="INSERT INTO empresas(nome, endereco, cidade, telefone, celular, contato) VALUES (@nome, @endereco, @cidade, @telefone, @celular, @contato)"
cmd =NewMySqlCommand(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()>0ThenMsgBox("Cadastrado")
clearTxt()
carrega_dados()EndIf
con.Close()Catch ex AsExceptionMsgBox(ex.Message)
con.Close()EndTryEndSub'LIMPA CAMPOS FORMULARIO
PrivateSub clearTxt()
nometxt.Text=""
enderecotxt.Text=""
cidadetxt.Text=""
telefonetxt.Text=""
celulartxt.Text=""
contatotxt.Text=""EndSub'CONSTRUÇÃO DATAGRID, CARREGA OS DADOS E EXIBE USUARIO LOGADO
PrivateSub cadastro_empresas_Load(sender AsObject, e AsEventArgs)HandlesMyBase.LoadDataGridView1.ColumnCount=7DataGridView1.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.TextEndSub'EVENTO BOTAO CADASTRA
PrivateSub cadastraEmpresa_Click(sender AsObject, e AsEventArgs)Handles cadastraEmpresa.Click
insert()EndSub'SCRIPT ATUALIZAÇÃO DE REGISTRO
PrivateSub atualizar(id AsString)Dim sql AsString="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()>0ThenMsgBox("Registro atualizado com sucesso.")
clearTxt()
carrega_dados()EndIf
con.Close()Catch ex AsExceptionMsgBox(ex.Message)
con.Close()EndTryEndSub'POPULAR TEXTBOX AO CLICAR NO DATAGRID
PrivateSubDataGridView1_MouseClick(sender AsObject, e AsMouseEventArgs)HandlesDataGridView1.MouseClickDim nome AsString=DataGridView1.SelectedRows(0).Cells(1).ValueDim endereco AsString=DataGridView1.SelectedRows(0).Cells(2).ValueDim cidade AsString=DataGridView1.SelectedRows(0).Cells(3).ValueDim telefone AsString=DataGridView1.SelectedRows(0).Cells(4).ValueDim celular AsString=DataGridView1.SelectedRows(0).Cells(5).ValueDim contato AsString=DataGridView1.SelectedRows(0).Cells(6).Value
nometxt.Text= nome
enderecotxt.Text= endereco
cidadetxt.Text= cidade
telefonetxt.Text= telefone
celulartxt.Text= celular
contatotxt.Text= contato
EndSubPrivateSub btnAtualizar_Click(sender AsObject, e AsEventArgs)Handles btnAtualizar.ClickDim id AsString=DataGridView1.SelectedRows(0).Cells(0).Value
atualizar(id)EndSubEndClass
Pergunta
decsousa
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
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.