none
Como capturar uma excessão pelo objectdatasource RRS feed

  • Pergunta

  • Estou utilizando o ObjectDataSource para atualizar minha base de dados, na propriedade InsertMethod já está configurado o método corretamente, consigo até realizar uma inserção normal, mas quando gera uma excessão eu preciso tratar e exibir a mesma na tela, o método que me dá essa opção é Inserted(), pois quando qualquer excessão é lançada na execução do método que consta na propriedade anteriormente citada eu posso pegar pelo método Inserted(), o problema é que quando eu lanço uma excessão dentro de um bloco try-catch gera o seguinte erro: "was unhandled by user code".

    Já pesquisei e verifiquei que em alguns exemplos na net as excessões são lançadas de fora de um bloco try-catch, tentei lançar fora do bloco apenas para teste mas apresenta a mesma mensagem de erro.

    Alguém já passou por esse mesmo problema??? alguém pode me ajudar na solução desse problema??

    Portanto, preciso lançar uma excessão de dentro de um método responsável pelo trabalho de inserir os dados e poder tratar no ObjectDataSource, de modo a exibir na tela a mensagem de erro.

    Se alguém puder me ajudar serei grato.

    JCastro

    quarta-feira, 27 de junho de 2012 13:23

Todas as Respostas

  • Dê uma olhada neste link, pode te ajudar.

    http://ferhenriquef.com/2012/05/15/dbcontext-e-o-objectcontext-no-deixe-seus-dados-em-memria/#more-820


    Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.

    Mauricio Junior - Comunidade www.ecode10.com

    quarta-feira, 27 de junho de 2012 13:27
  • Muito agradecido por sua dica, mas nesse caso em específico o link passado não ajudou muito.

    JCastro

    quinta-feira, 28 de junho de 2012 10:49
  • Na verdade vc tem que adicionar um evento nele que é o inserted

    Nele vc pega a ex

    ex

     protected void OdsFormInserted( object sender , ObjectDataSourceStatusEventArgs e )
            {
                if( e.Exception != null )
                {
                    ErrorSignal.FromCurrentContext().Raise(e.Exception);
                    e.ExceptionHandled = true;
                }
                else
                {
                    grvClient.DataBind();
                    upGrid.Update();
                }
            }


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    • Sugerido como Resposta Lucas Vandor sexta-feira, 29 de junho de 2012 02:27
    quinta-feira, 28 de junho de 2012 17:15
    Moderador
  • Prezado Seilor Junior,

    Sou muito grato por sua resposta, mas tenho uma ressalva, realmente existem os métodos "inserting" e "inserted" que são executados antes a após a execução do método de inserção, realmente vou pegar a excessão no método "inserted", meu problema é que para tanto será preciso gerar a excessão no método que consta na propriedade InsertMethod, bem ai está o problema.

    Quando lanço a excessão gera um erro, que está apresentado no tópico de iniciou esta discursão.

    Se puder me ajudar serei muito agradecido.


    JCastro

    sexta-feira, 29 de junho de 2012 00:54