ADO.NET é um conjunto de assemblies que integram o .NET Framework. Possui diversars classes que permitem a comunicação com os bancos (tais como o Microsoft SQL Server, OLE DB, e XML), realizando praticamente todas as tarefas relacionadas com o acesso e manutenção de dados.
Os componentes considerados os pilares da ADO.NET são o DataSet e os provedores .NET que são um conjunto de componentes que incluem os objetos :
Connection - responsável por efetuar a conexão com o banco de dados
Command - responsável por executar comandos contra o banco de dados;
DataAdapter - é utilizado para preencher o objeto DataSet;
Podemos acessar os dados através do provedor(livrarias de classes que permitem uma maneira comum de interagir com uma fonte específica de dados). No caso de interação com Microsoft SQL Server, será oSQL Data Provider
Cada objeto possui uma versão para cada uma das maneiras aqui mencionadas, assim temos no nosso caso os objetos :
SqlConnection, SqlCommand, SqlDataReader, SqlDataAdapter;
Existem duas maneiras básicas de você realizar a conexão com uma fonte de dados com ADO .NET:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnOD-K4YjkwoM3mNEny5gPRkXCTFi3NHLyi5zmWDbQXGsOuEx2noYivlj8r5ZGj-0849AR05JOI-P6jNGjgebAo62hSQlACQHX2IZNQn8uT-harhxvJwwAuNIUiI3dIYdpStJsg-85Xm8/s400/apagar.jpg)
1- ) Usando um DataSet
Este modo é conhecido como modo desconectado.
O objeto DataSet representa uma cópia do banco de dados em memória.
A classe DataSet é membro do namespace System.Data e representa o primeiro dos dois maiores componentes da arquitetura ADO.NET os outros membros seriam os provedores Data .NET. Podemos resumir os atributos do DataSet como segue:
* É baseado em XML
* É um conjunto de dados em cache que não esta conectado ao banco de dados
* É independente da fonte de dados
* Pode armazenar dados em múltiplas tabelas que podem ser relacionadas
* Armazena múltipla versões de dados para coluna e para cada linha em cada tabela
O DataSet fornece as principais funcionalidades para criar aplicações para banco de dados desconectados , embora suporte também o modelo conectado através de leitores de dados (DataReader).
A classe DataSet é derivada da classe System.ComponentModel.MarshalByValueComponent da qual ela recebe a habilidade de ser serializada , incluída na caixa de ferramentas do VS.NET e visualmente desenhada em um descritor. Os principais métodos da classe DataSet são :
Membro Descrição
Coleções
Relations Uma coleção de relações hospedadas em um objeto DataRelationCollection que liga tabelas através de chaves estrangeira
Tables Uma coleção de tabelas que armazena os dados atuais
Métodos
AcceptChanges Grava todas as alterações para o DataSet
Clear Remove todas as linhas de todas as tabelas
Clone Faz uma cópia da estrutura mas não os dados de um DataSet
Copy Faz uma cópia a estrutura e os dados de um DataSet
GetChanges Retorna uma cópia do DataSet com apenas as colunas alteradas ou aquelas que coincidem com o filtro definido em DataRowState
GetXml Retorna uma representação exm XML dos dados
GetXmlSchema Retorna uma representação XML da estrutura de um DataSet
HasChanges Retorna um valor indicando que existe mudanças pendentes
InferXmlSchema Infere a estrutura de um DataSet baseada em um arquivo ou fluxo
Merge Mescla o DataSet com o provedor
ReadXml Carrega um esquema XML e dados para um DataSet
ReadXmlSchema Carrega um esquem XML para um DataSet
Reset Reverte o DataSet ao seu estado original
WriteXML Escreve os dados e o esquema XML para um arquivo ou fluxo de dados
WriteXmlSchema Escreve o esquema XML para um arquivo ou fluxo
2- Usando um DataReader
Os objetos DataReader é uma das maneiras mais fáceis para ler os dados retornados pelos objetos Command . Eles permitem acessar e percorrer os registros no modo de somente leitura e somente para frente - forward-only .
O DataReader não oferece o acesso desconectado e não permite alterar ou atualizar a fonte de dados original sendo usado para obter rapidamente dados de apenas leitura. Apresenta poucos recursos mas seu desempenho é muito melhor do que o oferecido pelos DataSet.
As propriedades e métodos mais usadas dos objetos DataReader são:
* FieldCount - informa o número de colunas da linha de dados atual
* IsClosed - Indica se o objeto DataReader esta fechado.
* RecordsAffected - especifica o número de linhas alteradas , excluídas ou incluídas na execução de uma declaração SQL
* Item (n) - obtêm o valor da n-ésima coluna no seu formato nativo.
* Close - Método que fecha o objeto
* GetName - Método que retorna o nome da n-ésima coluna.
* Read - método que permite ao DataReader avançar para o próximo registro
* IsDbNull- método que informa se a n-ésima coluna possui um valor nulo.
Para criar um objeto DataReader usamos o método ExecuteReader de um objeto Command.
O objeto DataTable
Ao tratar com banco de dados não podemos deixar de pensar em tabelas e o objeto DataTable representa uma ou mais tabelas de dados em memória.
Os objetos DataTable estão contidos no objeto DataSet e/ou DataView.
Abaixo temos uma relação das principais propriedades do objeto DataTable:
* Columns - representa as colunas da tabela através da coleção de objetos DataColumn (DataColumnCollection)
* Rows - representa as linhas da tabela através de uma coleção de objetos DataRow (DataRowCollection)
* PrimaryKey - representa a chave primária da tabela atraves dos objetos DataColumn
* TableName - define o nome do objeto DataTable via coleção DatatableCollection em um objeto DataSet
* AcceptChanges - Efetiva as alterações realizadas no DataTable no banco de dados.
* NewRow - gera um novo objeto DataRow que representa uma linha de dados
* Copy - copia os dados e a estrutura do DataTable.
* Clear - limpa os dados de um DataTable.
* RejectChanges - ignora as alterações feitas no DataTable.
O objeto DataView
O DataView tem a função de permitir a ligação dos dados de uma fonte de dados com a interface do usuário através do DataBinding . Através do DataView podemos filtrar, ordenar, pesquisar e navegar pelos dados oferecendo diversas visões de um mesmo conjunto de dados ao usuário.
Usamos o DataView para mostrar uma visão dos dados contidos em um DataTable , com isto você pode ter vários DataViews ligados a um mesmo DataTable , sendo que cada um exibe um visão diferente dos dados.
O objeto DataTable possui um DataView padrão que é acessado através da propriedade DefaultView.
As principais propriedades do objeto DataView são :
*RowFilter - retorna uma expressão usada para filtrar os dados a serem exibidos pelo DataView.
*RowStateFilter - Define a versão dos dados que serão exibidos pelo DataView. Oferece as seguintes opções :
*CurrendRows - linhas de dados atuais (linhas não alteradas , novas)
*Added - linhas de dados novas.
*Deleted - Linha excluída pelo método Delete
*None - Nenhuma linha
*ModifiedCurrent - linhas de dados que foram modificadas - versão atual
*OriginalRows - linhas originais
*Unchanged - Linhas não modificadas
*ModifiedOriginal - linhas de dados que foram modificadas - versão original
*Count - informa o número de linhas no DataView após a aplicação dos filtros : RowFilter e RowStateFilter
*Item - obtêm uma linha de dados de um tabela especificada.
*Sort - define a coluna que irão ordenar o DataView e o tipo da ordenação ( ASC - ascendente ou DESC - descendente)
*Addnew - Inclui uma nova linha no DataView
*Table - Define qual o objeto DataTable de origem para o DataView
*Delete - exclui uma linha do DataView
*Find - Busca por uma linha no DataView
Na sequencia mostrarei como realizar uma conexão com banco de dados usando ADO .NET com C#.