Duplicidade Na Gravacao dos Dados

14/08/2008

0

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


Sid.sil

Sid.sil

Responder

Posts

14/08/2008

Ricardo Silva

veio...
vc tem que verificar se é um postBack...

em C# é assim
if(!IsPostBack){
  //Codigo
}


de imediato isto resolve... porem vc tem que verificar como esta ocorrendo... lembro me que ja passei por isso... na verdade nem sei como resolvi.... apenas fui estudando e qndo me vi ja naum dava mais esse erro...

tenta ai... ou da uma estudada em PostBack axo q e isso


Responder

14/08/2008

Sid.sil

Obrigado por sua ajuda RicaJedidia

Essa e uma rotina, onde eu executo um Insert e um Update baseado no ID do usuario.Se o ID for ´0´ (usuario nao cadastrado), dou o Insert se diferente executo o Update (usuario ja cadastrado).

Nos exemplos que vi ate agora o PostBack, aparece apenas no Page_Load.Eu posso utiliza em outras rotinas, quantas vezes for necessario.

Obrigado e um Abraco


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar