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

Avisar Quando Tiver Duplo Registro


|Alucard|

Pergunta

seguinte, eu coloquei no meu programa um banco de dados, e nele eu coloquei p/ não permitir entradas duplicadas... beleza, eu testei e está tudo funcionando como deveria... só que quando dá erro, dá uma mensagem enorme (a msg é essa oh: "As alteracoes solicitadas p/ a tabela não foram satisfatorias já que criaram valores duplicados no indice, chave primaria ou relacao. Altere os dados no campo ou campos que contem os dados dulpicados, remova o indice ou redefina o indice p/ possibilitar entradas duplicadas e tente novamente."). teria como eu por uma msg personalizada, tipo: o dado tal já existe no banco de dados..??

valeu =]

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Bom, ErrorCode não tem utilidade já que sempre retorna o mesmo código para qualquer erro. Então decidi olhar as outras propriedades e encontrei em Errors(0).SQLState uma maneira de diferenciar os erros. O código seria algo assim:

        Try
            'aqui entra o seu código para adicionar o registro
        Catch ex As OleDb.OleDbException When ex.Errors(0).SQLState = 3022
            MessageBox.Show("Chave-primária duplicada!")
        Catch ex As OleDb.OleDbException When ex.Errors(0).SQLState = 3200
            MessageBox.Show("Registro relacionado em outra tabela! Não é possível excluí-lo sem primeiro remover a relação!")
        Catch ex As OleDb.OleDbException When ex.Errors(0).SQLState = 3201
            MessageBox.Show("Não é possível inserir este registro porque existe uma relação entre as tabelas (e um valor informado não tem correspondente na outra tabela)!")
        Catch ex As OleDb.OleDbException
            MessageBox.Show(ex.Errors(0).SQLState)
            MessageBox.Show("Ocorreu outro erro qualquer: " & ex.Message)
        End Try

Coloquei alguns exemplos, mas para você ver os outros códigos basta forçar o erro que o último Catch vai mostrar o código para você.

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...