SID_SILVA 0 Denunciar post Postado Agosto 14, 2008 Boa Tarde Amigos Estou utilizando ASP.NET 2.0 e tenho uma rotina de atualizacao de dados, onde a rotina esta sendo executada 2 vezes. Eu clico no botao enviar (para salvar os dados) e dai eles sao gravados.Quando chego ao End Sub a execucao do programa retorna para o evendo Click desse botao e executa tudo de novo. Sera que existe alguma propriedade que eu deva configurar? Postei a rotina abaixo. Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Sql As String Dim cmd As SqlCommand Dim conexao As SqlConnection Dim Erro As Integer Dim IdCadastro As Integer = 0 conexao = New SqlConnection(ConfigurationManager.ConnectionStrings("timesheetConnectionString").ConnectionString) IdCadastro = CboModalidade.SelectedIndex If IdUsuario = 0 Then Sql = "INSERT INTO USERS (USER_NOME,USER_ENDERECO,USER_BAIRRO) " Sql = Sql & "VALUES ('" & txtNome.Text & "','" Sql = Sql & txtEndereco.Text & "','" Sql = Sql & txtBairro.Text & "')" Else Sql = "UPDATE USERS " Sql += " SET USER_NOME='" & txtNome.Text & "'," Sql += " USER_ENDERECO='" & txtEndereco.Text & "'," Sql += " USER_BAIRRO ='" & txtBairro.Text.Trim & "'," Sql += " WHERE USER_ID=" & IdUsuario End If conexao.Open() cmd = New SqlCommand(Sql, conexao) cmd.ExecuteNonQuery() Erro = cmd.ExecuteNonQuery() If Erro > 0 Then lblMensagem.Visible = True lblMensagem.Text = "Dados Atualizados com Sucesso!" End If Try 'Determine a query que seleciona o identificador do registro inserido cmd = New SqlCommand("SELECT @@IDENTITY", conexao) cmd.CommandType = CommandType.Text 'obtem o codigo do pedido que foi incluido na tabela Pedidos IdCadastro = cmd.ExecuteScalar() Catch ex As Exception 'lblMensagem.Text = "Erro ao acessar os dados : " & vbCrLf & ex.Message & vbCrLf & ex.InnerException.ToString Finally ' xxxxxxxxxxxxxx End Try 'cmdRel = New SqlCommand(Sql, conexao) 'cmdRel.ExecuteNonQuery() 'conexao.Close() End Sub Muito Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
roberto182 0 Denunciar post Postado Agosto 14, 2008 Boa Tarde, Tá aqui: ... cmd.ExecuteNonQuery() Erro = cmd.ExecuteNonQuery() ... Você está executando duas vezes a query. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
SID_SILVA 0 Denunciar post Postado Agosto 14, 2008 Muito obrigado por sua ajuda roberto182. Mas esse nao e o motivo do erro, ja eliminei uma das linhas. O que acontece e quando eu chedo ao End Sub a execucao do programa volta para a linha do Button1_Click, como que se eu estivesse executando pela primeira vez. Outro colega sugeriu que eu usasse o PostBack, para verificar se e a primeira passagem pela pagina e se nao for eu saio fora sem fazer nada. Obrigado e um Abraco Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 14, 2008 Isso é algo comum quando usamos o VB e que não acontece no C#, ele cria a referência do click la no HTML e cria a referencia de novo no código VB, retire isto: Handles Button1.ClickDa sua primeira linha e veja se da certo. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
SID_SILVA 0 Denunciar post Postado Agosto 15, 2008 Bom Dia Puxa era isso mesmo quintelab, funcionou perfeitamente.Eu nao gosto muito de utilizar o C#, digamos que nao fui com a cara dele, pois venho do VB6 e portanto a estrutura em VB.NET e mais familiar para mim. Vendo varios exemplos em Foruns, nas video aulas sobre Net que comprei,apostilas, o C# e usado em grande maioria.Sera que as pessoas tem algo contra o VB, ou sera que e mais facil programar em C#? Eu nao gosto do C# e embora a programacao em VB, va resolver muito provavelmente todos sos meus problemas, certamente terei que aprender o c# a titulo de conhecimento. Obrigado Novamente e ate a proxima duvida, que alias ja esta a caminho. Um Abraco Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 15, 2008 É na verdade muitos preferem o c# por ele vir do C e ser parecido com o Java, é uma linguagem de nível mais baixo, o VB tem muitas facilidades, como a conversão implicita que facilita a vida do programador mas exige mais processamento de sua aplicação. É interessante que conheça ambas as linguagens, só muda um pouco a sintaxe, pois as classes do FrameWork são as mesmas. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
SID_SILVA 0 Denunciar post Postado Agosto 18, 2008 Boa Tarde Novamente Na verdade eu pensei que o problema estivesse resolvido, porem fui ver agora e ele ainda persiste, pois o Handles Button1.Click que eu havia tirado, simplesmente e colocado de volta automaticamente. E agora, sera que terei que mudar para o C#? Um Abraco Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 18, 2008 Acredito que ele só é colocado novamente quando você da um clique duplo nele para entrar no evento dele. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
SID_SILVA 0 Denunciar post Postado Agosto 19, 2008 Bom Dia Voce tem razao Quintelab e so nar dar o duplo clique no botao. Obrigado mais uma vez e um abraco Compartilhar este post Link para o post Compartilhar em outros sites
Gutoo 1 Denunciar post Postado Julho 5, 2011 Showww..... me ajudou e muito essa informação. Realmente eu estava tendo os registros duplicados. Agora zerou. Obrigado. Também programo me .VB, aliás estou começando com .NET.... Compartilhar este post Link para o post Compartilhar em outros sites