Este objeto funciona da mesma maneira que eu SqlDatasource: é conectado no WebForm que vai usar os dados e faz as operações do banco de dados. Mas o SqlDataSource deixa nossa interface totalmente acoplada à camada de dados. porque é diretamente conectado ao banco de dados e leva inclusive comandos SQL na camada de apresentação; com certeza não é a melhor opção.
Este componente ObjectDataSource nos permite, em vez de conectar diretamente à base de dados, conectar com algum objeto de negócio criado por nós na camada lógica de negócio e selecionar métodos implementados por nós no nosso objeto de negócio para implementar as operações de select, insert, update e delete, inclusive com parâmetros.
Outra coisa interessante sobre este objeto é que não é obrigatório definir operações que nós não vamos usar: se nossa página for apenas de consulta não precisamos configurar métodos de insert, update e delete.
O método que representa o select pode retornar um DataSet ou um DataTable e pode ter parâmetros ou não; os métodos que representam o insert, update e o delete devem ter os parâmetros que representam os campos da tabela que serão afetados na operação.
Vou dar um exemplo básico dos métodos do objeto de negócio para usarmos o ObjectDataSource. Nossa tabela de exemplo será chamada Usuarios e os campos serão:
UsuarioID int,
Nome string,
Email string,
Login string,
Senha string.
nossos métodos devem ter as seguintes assinaturas:
select:
public DataSet Selecionar() {
// implementação...
}
insert:
public void Incluir(int UsuarioID, string Nome, string Email, string Login, string Senha) {
// implementação...
}
update:
public void Alterar(int UsuarioID, string Nome, string Email, string Login, string Senha) {
// implementação...
}
delete:
public void Delete(int UsuarioID) {
// implementação...
}
Os parâmetros dos métodos devem ter o mesmo nome e tipo dos campos retornados pelo método do select, pois o ObjectDataSource usa estes campos como valores dos parâmetros para as demais operações.
É isso aí. Espero que tenha ajudade e até a próxima.
Nenhum comentário:
Postar um comentário