Inquiridor
CONCORRÊNCIA DE DADOS

Pergunta
-
Ae galera...
Alguém sabe como tratar problemas de concorrencia utilizando gridView associado a um objectDataSource... O seguinte problema está ocorrendo:
Abrindo dois browsers e excluindo um registro no primeiro... Quando tento excluir/alterar esse registro no outro ele realiza a operação no registro posterior ao selecionado na grid... E caso o registro alterado seja o último da grid.. no segundo browser ocorre o erro...
Em que evento tratar isso... Minha aplicação está funcionando em tres camadas...
Apresentaçao (aspx) -> Facade (Interface) -> Negocio (BO) -> Base Dados (DAO)
Outro problema é como tratar dados com relacionamentos com outras entidades... Até consigo capturar a excecao mas não consigo mostrar a msg para o usuario e sempre me direciona para a página de erro....
Faco o teste abaixo no catch do evento Grid1_RowDeleting e tambem no Grid1_RowDeleted.. E debugando eu já vi que entra no if... porem não mostra nenhuma msg e direciona para a página de erro.
If
(e.Exception.InnerException.Message.StartsWith(MensagensUtil.EXC_SIST_CONSTRAINT_FK)) Then 'Exibe msg de ERRO e recarrega a grid.ClientScript.RegisterStartupScript(
Me.GetType(), "Erro", "alert(""" + MensagensUtil.EXISTE_RELACIONAMENTO + """)", True)Carrega_Grid()
End IfEstou com esse problema a algum tempo... E ninguem conseguiu me responder algo de concreto...
ALGUM FILHO DE DEUS.. HELP ME PLEASE... uaehuahuahuahe
Todas as Respostas
-
-
-
Oi !
Fiz esse exemplo aqui utilizando sqldatasource/gridview. Só tive problemas desabilitando o viewstate, com o viewstate habilitado tudo funciona corretamente.
Já que seu viewstate está habilitado, seu código pode estar no mínimo estranho para causar este erro.
[]'s