2. O que veremos hoje? ADO.NET O que é? Qual é o seu objetivo? Qual a situação atual? Esquema do ADO.NET Acessando e Manipulando Dados Namespace System.Data DataTable DataSet SQLConnection SQLCommand SQLDataAdapter SQLDataReader Tópicos de Esclarecimento Exercício Dicas de Estudo Agradecimento
3. ADO.NET O que é? ADO.NET é principal tecnologia de acesso e manipulação de dados da plataforma .NET. Consiste em uma adaptação do antigo ADO (ActiveX Data Objects) para rodar no .NET Framework. Qual é o seu objetivo? O principal objetivo do ADO.NET é providenciar um acesso e manipulação de dados robusto e consistente para seu projeto, por meio de suas classes e componentes.
4. ADO.NET Qual a situação atual? Acompanhar a evolução do .NET Framework fez com que o ADO.NET evoluísse junto. Hoje, não contamos somente com o ADO.NET como tecnologia de acesso e manipulação de dados presente na plataforma. Entre outras tecnologias de acesso e manipulação de dados, podemos citar o LINQ To SQL e o ADO.NET Entity Framework. Ambas são tecnologias de mapeameto objeto-relacional, sendo que a primeira funciona somente com o SGBD SQL Server.
5. ADO.NET Esquema do ADO.NET Segue abaixo um esquema das classes do ADO.NET.
6. Acessando e Manipulando Dados Namespace System.Data O Namespace System.Data provê uma série de classes auxiliares para acesso e manipulação de arquivos de banco de dados, tais como DataTable, DataSet, entre outros.
7. Acessando e Manipulando Dados DataSet A classe DataSet representa um cache de dados gravados em memória. Sua composição consiste em um conjunto de tabelas (DataTables) e relacionamentos retornados após a efetuação de uma operação ao Banco de Dados. Podemos dizer que um DataSet é um vetor de DataTables. DataTable O DataTable representa uma única tabela de um banco de dados que é criada em memória. Podemos ligar um DataTable diretamente a um controle GridView, por exemplo, a partir da propriedade DataSource do segundo, para a exibição dos dados contidos nessa tabela existente na memória.
8. Acessando e Manipulando Dados SQLConnection A classe SQLConnection tem o objetivo de estabelecer uma conexão com um Banco de Dados SQL Server. Principais propriedades e métodos ConnectionString: propriedade que especifica qual a string de conexão do banco de dados. A string de conexão com o banco pode ser passada também ao instanciar a classe. Ex.: SQLConnection conexao = new SQLConnection (stringDeConexao); Open(): método que abre uma conexão com o banco de dados selecionado. Close(): método que fecha a conexão com o banco de dados.
9. Acessando e Manipulando Dados SQLCommand A classe SQLCommand é responsável por executar um comando DML em uma base de dados SQL Server. Principais propriedades e métodos Connection: propriedade que recebe um SQLConnection com as informações do banco. CommandText: propriedade contendo o script SQL que será executado. CommandType: propriedade contendo o tipo de comando a ser usado (texto, storedprocedure ou acesso direto à tabela). ExecuteNonQuery(): método para executar comandos do tipo insert, update ou delete. ExecuteReader(): método para executar comandos do tipo select. ExecuteScalar(): método para executar comandos que retornam apenas uma linha e uma coluna, tais como avg(), min(), max() e count().
10. Acessando e Manipulando Dados SQLDataAdapter A classe SQLDataAdapter é responsável por executar um comando DML em uma base de dados SQL Server. Deve ser utilizada quando precisamos retornar um DataSet (usar em conjunto com a classe DataSet). Principais propriedades e métodos DeleteCommand: propriedade que executa um comando delete contido em um SQLCommand. InsertCommand: propriedade que executa um comando insert contido em um SQLCommand. SelectCommand: propriedade que executa um comando select contido em um SQLCommand. UpdateCommand: propriedade que executa um comando updatecontido em um SQLCommand. Fill(): preenche um DataSet com o resultado do comando SQL passado através de uma das propriedades citadas acima.
11. Acessando e Manipulando Dados SQLDataReader A classe SQLDataReader provê uma leitura unidirecional dos dados, ou seja, ela lê os dados desejados e os mostra ao usuário, porém, não é possível fazer a manipulação dos mesmos. Para essa finalidade, deve-se usar a classe DataSet em conjunto com o SQLDataAdapter. Uma das principais vantagens do SQLDataReader em relação ao DataSet é a velocidade, pois a primeira é mais rápida devido ao fato de fazer somente a leitura de dados, enquanto a segunda permite a manipulação dos mesmos por meio do SQLDataAdapter.Fill(DataSet).
12. Tópicos de Esclarecimento ADO.NET É possível acessar e manipular dados a partir de outros SGBD’s que não são suportados nativamente pelo .NET Framework (Firebird, MySQL, Postgre, entre outros). Para isso, o desenvolvedor deve instalar o provedor específico do SGBD em sua máquina. Por padrão, o .NET suporta nativamente ODBC, OleDB, SQL Server (System.Data.SqlClient), entre outros.
14. Dicas de Estudo ADO.NET, LINQ To SQL e ADO.NET Entity Framework http://www.macoratti.net http://msdn.microsoft.com/pt-br/default.aspx http://www.linhadecodigo.com.br Desenvolvedor Cinco Estrelas http://www.mslatam.com/brasil/dce/
15. Dicas de Estudo MSDN Experience http://msdn.microsoft.com/pt-br/dd366110.aspx MSDN Media Center (Vídeos e Webcasts sobre diversos assuntos) https://www.msdnbrasil.com.br/mediacenter/Default.aspx