Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
804
Assunto : ADO.NET
Titulo: Truques com TableAdapter e ObjectDataSource

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



O TableAdapter do ADO.NET foi feito para encaixar-se quase perfeitamente ao ObjectDataSource. Quase.

Por default o TableAdapter utiliza a opção "Optimistic Concurrency". Isso é comum em ambiente windows, mas não é comum no ambiente web. Mas é simples resolver : Na tela de definição da query clica-se em Advanced e desmarca-se a opção "Optimistic Concurrency".

Pronto. O ObjectDataSource reconhece o TableAdapter e os métodos de leitura e gravação do TableAdapter, o que é ótimo.

Porém o método de atualização do TableAdapter (Update) é criado recebendo duas vezes a chave da tabela como parâmetro. Teoricamente isso é feito para uma possível atualização do valor da chave primária (valor antigo/valor novo), mas na prática isso raramente é utilizado.

O resultado disso é que a GridView e outros objetos não se encaixam com perfeição neste trabalho, pois não transmitem a chave duas vezes.

Para resolver esse problema, devemos criar uma query de atualização separada no TableAdapter. Basta clicarmos com o botão direito no TableAdapter e selecionarmos Add Query. Selecionamos o tipo da query como Update e o TableAdapter nos traz a instrução de update montada, devemos então ter apenas um cuidado : Trocamos o nome do parâmetro de @original_<campo> (@original_productid, por exemplo) simplesmente pelo nome do campo (@productId, por exemplo).

Como ultimo ajuste, altera-se a propriedade OldValuesParameterFormatString do ObjectDataSource. Normalmente esta propriedade contém Original_{0}, vamos altera-la para apenas {0} e desta forma os nomes de parâmetros vão bater com os nomes esperados pelo tableAdapter.

Com estes ajustes simples, fazemos o acesso em camadas (o TableAdapter como objeto de acesso a dados) sem necessidade de codificar.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br