none
Delete no Detailsview - Como tratar erros? RRS feed

  • Pergunta

  • Boa noite pessoal , sou iniciante em ASP.NET e VB.

    Estou com um problema na minha aplicação. Tenho um Gridview que exibe os dados do SqlServer, e o detailsview que detalha estas informações e permite ao usuário editar ou deletar estes dados.

    A função "editar" está ok, o problema é quando o usuário tenta deletar um dado da tabela porém esta informação já consta em outra tabela como chave estrangeira. Então aparece um erro na tela. Como tratar este erro?

    Obrigado desde já.

    terça-feira, 13 de março de 2012 22:41

Respostas

  • Bom dia.

    Se esta utilizando WebForm o message box nao ira funcionar, utilize java script, segue link para lhe ajudar:

    http://www.macoratti.net/07/09/aspn_ujs.htm


    Consultoria .NET
    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
    Blog .Net Descomplicado

    • Marcado como Resposta GuilhermeT quinta-feira, 15 de março de 2012 17:11
    quinta-feira, 15 de março de 2012 14:19
  • Pessoal, encontrei uma solução:

    Private Sub DS_det_municipios_Deleted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles DS_det_municipios.Deleted
            If IsNothing(e.Exception) Then
            Else
                MsgBox("[901] Esse Município está Associado a uma Unidade, Estação ou Bairro ! Verificar Unidade, Estação ou Bairro Associado Antes de Realizar a Exclusão!")
                e.ExceptionHandled = True
            End If
        End Sub

    Executou da maneira que eu esperava, porém somente durante o Debug do Visual Studio.

    Quando eu rodo minha aplicação no server eu encontro o mesmo problema de antes. Alguma sugestão?

    • Marcado como Resposta GuilhermeT quinta-feira, 15 de março de 2012 17:12
    quinta-feira, 15 de março de 2012 14:05

Todas as Respostas

  • Segue abaixo a mensagem de erro:

    Server Error in '/' Application.

    The DELETE statement conflicted with the REFERENCE constraint
    "FK_tb_bairro_tb_municipio". The conflict occurred in database "BD_SICAM", table
    "dbo.tb_bairro", column 'cod_municipio'.
    The statement has been
    terminated.


    quarta-feira, 14 de março de 2012 11:37
  • Pessoal, encontrei uma solução:

    Private Sub DS_det_municipios_Deleted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles DS_det_municipios.Deleted
            If IsNothing(e.Exception) Then
            Else
                MsgBox("[901] Esse Município está Associado a uma Unidade, Estação ou Bairro ! Verificar Unidade, Estação ou Bairro Associado Antes de Realizar a Exclusão!")
                e.ExceptionHandled = True
            End If
        End Sub

    Executou da maneira que eu esperava, porém somente durante o Debug do Visual Studio.

    Quando eu rodo minha aplicação no server eu encontro o mesmo problema de antes. Alguma sugestão?

    • Marcado como Resposta GuilhermeT quinta-feira, 15 de março de 2012 17:12
    quinta-feira, 15 de março de 2012 14:05
  • Bom dia.

    Se esta utilizando WebForm o message box nao ira funcionar, utilize java script, segue link para lhe ajudar:

    http://www.macoratti.net/07/09/aspn_ujs.htm


    Consultoria .NET
    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
    Blog .Net Descomplicado

    • Marcado como Resposta GuilhermeT quinta-feira, 15 de março de 2012 17:11
    quinta-feira, 15 de março de 2012 14:19
  • Obrigado Edson,

    Troquei o msgbox pelo alert do javascript e o problema foi resolvido.

    quinta-feira, 15 de março de 2012 17:13