Jump to content
MarKteus

Como impedir a regravação de dados quando o recarrega a pagina?

Recommended Posts

Olá,

 

Estou com um problema que é o seguinte:
O usuário utiliza a operação de gravar em uma pagina Web. Porém ao re-carregar a página ou quando clica no botão Voltar do navegador os dados recem gravados são gravados novamente criando 2 ou mais registros na tabela.

 

Como posso impedir que um refresh regrave informações já gravadas ?

 

 

Desde já obrigado!

Share this post


Link to post
Share on other sites

Essa é uma questão complicada quando se trabalha com Web. O problema é que você está trabalhando por requisições, cada requisição vai realizar uma ação no servidor. A parte de tratar quando essa ação deve ou não ser executada e inteiramente da lógica do back-end, ou seja, você vai ter que adicionar uma lógica para identificar se aquele registro já existe na tabela e impedir a inserção.

 

Você pode fazer isso usando um simples select na chave primária ou em dados chave da linha.

Share this post


Link to post
Share on other sites

Ja tíve um problema semelhante.

 

Na hora de adicionar um novo registro,veja a hora/data que o ultimo registro foi adicionado.

se a diferença for de uns 5 segundos e os dados tiverem iguais,exclua um deles.

Share this post


Link to post
Share on other sites

Pessoal,

Consegui resolver o problema e pra agregar conhecimento deixarei aqui como fiz, mas acredito que todas as sugestões funcionam.

 

protected void Page_Load(object sender, EventArgs e)

{

// Validação para impedir duplicação de dados no banco

if (!Page.IsPostBack)

{

Session["HouveRefresh"] = true;

}

 

}

 

 

protected void Page_PreRender(object sender, EventArgs e)

{

// Validação para impedir duplicação de dados no banco

ViewState["HouveRefresh "] = Session["HouveRefresh "];

}

 

 

protected void btnCadastrar_Click(object sender, EventArgs e)

{

// Validação para impedir duplicação de dados no banco

if (Session["HouveRefresh "].ToString() == ViewState["HouveRefresh "].ToString())

{

Session["HouveRefresh "] = false;


Obrigado
Valew mesmo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By fideles
      Mais uma vez venho aqui pedir ajuda a vocês.
       
      Tenho um formulario que criei aqui na empresa algo bem simples, somente para sair das planilhas de excel, que seria cadastro de funcionarios.
       
      Tem os campos, matricula, nome completo, unidade de trabalho, endereço e telefone de emergencia.
       
      A parte do formulario funciona, a gravação no BD tbm, listar as informações também, ai me perguntaram se era possível um auto preenchimento dos campos colocando somente a matricula do funcionario e respondi que eu não sei porque realmente não sei.
       
      A ajuda que eu preciso de vocês seria, é possível fazer isso ? Colocar a matricula e vir do banco e preencher os outros inputs? Se sim, é possível me derem um exemplo de como funciona e eu estudar o codigo e colocar nos outros inputs.
       
      Obrigado antecipadamente. 
       
    • By carlosmassam
      Bom noite a todos.

      Eu tenho o seguinte código
       
      <input type="radio" id="radio01" name="radio01" value="radio01"> <input type="radio" id="radio02" name="radio02" value="radio02"> <input type="radio" id="radio03" name="radio03" value="radio03"> <input type="radio" id="radio04" name="radio04" value="radio04"> <input type="radio" id="radio05" name="radio05" value="radio05"> Este código me apresenta 5 radiobuttons distintos, um ao lado do outro. Eu gostaria que, ao clicar em um deles, desse check no radiobutton que eu cliquei e também em todos os radiosbuttons anteriores, e os radionbutton posteriores fossem "deschecado".
      Por exemplo: ao clicar no radio04, ele deve fichar com check, e os radio03, radio02 e radio01 também devem ficar com check, como o radio05 vem depois do radio04, ele não deve ser checado, então permanecerá como está.
      Mas se eu então clicar no radio02, os radio03 e radio04 devem mudar para "deschecado" e os radio02 e radio01 devem permanecerem checados.
    • By vinissant7
      Boa tarde Amigos,
       
      Estou precisando que quando o usuário esteja logado, e ele clique em um link dentro da imagem (tag area com HREF) ele cadastre no banco de dados o nome e email do usuário e a hora que ele entrou no link, lembrando que quando ele loga ele inicia uma SESSION.
       
      é possivel fazer isso na tag <map> <area href="####" > </map> ?
       
      Desde já obrigado!
       
    • By andreia_sp
      Ola pessoal,
       
      nao sei se o correto seria nessa area, na duvida coloquei em C# porque minha aplicação está em C#.
      O problema é o seguinte: tenho um sistema desenvolvido que roda apenas localmente (intranet). Configurei o firewall pra liberar a porta e as outras maquinas acessam normalmente. A questao é que o IP da maquina onde foi hospedado é dinamico. Ou seja, diariamente as outras maquinas "perdem" o acesso.
      Tem como configurar de alguma forma que, independente do IP, todas as maquinas consigam acessar?
       
       
      Obrigada
    • By RukasuNiiChan
      ========== Meu Projeto ==========
      * Introdução
      Bem , eu estou no ultimo ano do E.M , e com essa pandemia , algumas adaptações foram tomadas , como todos sabem , a AULA ONLINE , porem , na minha escola não se utiliza a verificação de presença ( Chamada ) por Vídeo , através de um WebCam , e sim a confirmação por digitalização , todos os alunos devem escrever " ok " quando o respectivo professor digitar " chamada " no chat:
      Exemplo 1: https://prnt.sc/uiw9jy
      * Ideia
      Então o que eu pensei , A Ideia Inicial era criar um BOT para identificar a palavra " Chamada " no chat , e então , automaticamente , ele escrevesse " ok " ou " Presente " para assim automatizar o processo e facilitar a minha vida.
      Porem eu descobri uma funcionalidade no Google que são as extensões para o Google Meet que até então eu não sabia que existiam
      Entretanto se alguém que não tem experiencia em extensões mas tem em engenharia de software , me ajudaria da mesma forma
      * Conclusão
      Enfim , a minha ideia é automatizar o processo de " Responder a chamada " durante a aula online ,  como sou um estudante de programação queria muito a ajuda de vocês pra isso , pois meu conhecimento é leigo , qualquer duvida sobre o projeto , podem responder a este tópico pois , irei responder dentro de 24 horas , ou se o interesse nele for grande , me chamem na DM do Discord ( Rukasu#7321 ) 
      ===============================
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.