ADO.NET fornece uma ponte entre controles front-end e bancos de dados back-end. Os objetos ADO.NET encapsulam todas as operações e controles de acesso a dados que interagem com objetos de exibição de dados. Os detalhes da movimentação de dados ficam assim ocultos.
O diagrama a seguir mostra o objeto ADO.NET como um todo:
Um conjunto de dados representa um subconjunto de um banco de dados. Não possui conexão persistente com o banco de dados. Uma reconexão é necessária para atualizar o banco de dados. DataSet inclui objetos DataTable e DataRelation. Os objetos DataRelation representam o relacionamento entre duas tabelas.
A tabela a seguir contém algumas propriedades importantes da classe DataSet:
propriedade | descrever |
---|---|
Maiúsculas e minúsculas | Indica se a string a ser comparada com a tabela de dados diferencia maiúsculas de minúsculas. |
Recipiente | Obtenha espaço para o componente. |
DataSetName | Obtém ou define o nome de uma coleção de dados existente. |
Gerenciador de visualização padrão | Retorna uma visualização dos dados na coleta de dados. |
Modo de Design | Indica se o componente está no modo de design. |
Aplicar restrições | Indica se as restrições são respeitadas ao tentar fazer upload de um arquivo. |
Eventos | Obtenha a lista de manipuladores de eventos relacionados a este componente. |
Propriedades Estendidas | Obtém uma coleção de informações personalizadas do usuário relacionadas ao DataSet. |
Tem erros | Indique se há algum erro. |
Está inicializado | Indica se o DataSet foi inicializado. |
Localidade | Obtém ou define informações usadas para comparar cadeias de caracteres com a tabela. |
Espaço para nome | Obtém ou define o namespace do DataSet. |
Prefixo | Obtém ou define um prefixo XML que é um alias para um namespace. |
Relações | Retorna uma coleção de objetos DataRelation. |
Tabelas | Retorna uma coleção de objetos DataTable. |
A tabela a seguir lista alguns métodos importantes da classe DataSet:
método | descrever |
---|---|
Aceitar alterações | Aceita todas as alterações devido ao carregamento do DataSet ou deste método. |
BeginInit | Inicie a inicialização do DataSet. Essa inicialização ocorre em tempo de execução. |
Claro | Limpar dados. |
Clone | Clone a estrutura do DataSet incluindo todas as estruturas, relacionamentos e restrições do DataTable. Mas os dados não são clonados. |
Cópia | Copie dados e estruturas. |
CriarLeitorDeDados() | Retorna um DataTableReader com um conjunto de resultados para cada DataTable, na mesma ordem em que as tabelas da coleção Tables aparecem. |
CriarDataReader(DataTable[]) | Retorna um DataTableReader com um conjunto de resultados para cada DataTable. |
FimInit | Encerra a inicialização de um DataSet usado em um formulário ou por outro componente. A inicialização ocorre em tempo de execução. |
Igual (Objeto) | Determina se o objeto especificado é igual ao objeto atual. |
Finalizar | Libere recursos para realizar limpeza adicional. |
Obter alterações | Obtém uma cópia do DataSet que contém todas as alterações feitas no DataSet desde que ele foi carregado ou desde a última vez que AcceptChanges foi chamado. |
GetChanges(DataRowState) | Obtém uma cópia do DataSet filtrado por DataRowState que contém todas as alterações no conjunto de dados desde que foi carregado pela última vez ou desde que AcceptChanges foi chamado. |
GetDataSetSchema | Obtenha uma cópia do XmlSchemaSet para o DataSet. |
GetObjectData | Preencha o objeto de informações serializado com os dados necessários para serializar o DataSet. |
GetType | Obtenha o tipo da instância atual. |
ObterXML | Retorna uma representação XML dos dados armazenados no DataSet. |
GetXMLSchema | Retorna o esquema XML da representação XML dos dados armazenados no DataSet. |
HasChanges() | Obtém um valor que indica se o DataSet foi alterado, incluindo novas linhas, linhas excluídas ou linhas modificadas. |
HasChanges(DataRowState) | Obtém um valor que indica se o DataSet tem alterações filtradas pelo DataRowState, incluindo novas linhas, linhas excluídas ou linhas modificadas. |
IsBinarySerializado | Verifique o formato da representação serializada do DataSet. |
Carregar(IDataReader, LoadOption, DataTable[]) | Use o IDataReader fornecido para preencher o DataSet com valores da fonte de dados, enquanto usa uma matriz de instâncias do DataTable para fornecer informações de esquema e namespace. |
Carregar(IDataReader, LoadOption, String[]) | Preencha o DataSet com valores da fonte de dados usando o IDataReader fornecido e usando uma matriz de strings para fornecer nomes para as tabelas no DataSet. |
Mesclar() | Mescla a matriz especificada de objetos DataSet, DataTable ou DataRow no DataSet ou DataTable atual. Existem diferentes sobrecargas deste método. |
LerXML() | Leia o esquema XML e os dados no DataSet. Existem diferentes sobrecargas deste método. |
LerXMLSchema(0) | Leia o esquema XML no DataSet. Existem diferentes sobrecargas deste método. |
Rejeitar alterações | Reverta todas as alterações feitas no DataSet desde que ele foi criado ou desde a última vez que DataSet.AcceptChanges foi chamado. |
EscreverXML() | Escreva dados XML e esquema do DataSet. Existem diferentes sobrecargas deste método. |
WriteXMLSchema() | Escreva o esquema XML do DataSet. Existem diferentes sobrecargas deste método. |
A classe DataTable representa uma tabela em um banco de dados. Possui as seguintes propriedades importantes: A maioria das propriedades é somente leitura, exceto a propriedade PrimaryKey:
propriedade | descrever |
---|---|
Relações Infantis | Obtém a coleção de relações filhas deste DataTable. |
Colunas | Obtém a coleção de colunas pertencentes a esta tabela. |
Restrições | Obtém a coleção de restrições mantidas por esta tabela. |
Conjunto de dados | Obtenha o DataSet ao qual esta tabela pertence. |
Visualização padrão | Obtém uma exibição personalizada de uma tabela que pode incluir exibições filtradas ou posições de cursor. |
Relações Parentais | Obtém a coleção de relacionamentos pai deste DataTable. |
Chave Primária | Obtém ou define a matriz de colunas que servem como chaves primárias para a tabela de dados. |
Linhas | Obtém a coleção de linhas pertencentes a esta tabela. |
A tabela a seguir lista alguns métodos importantes da classe DataTable:
método | descrever |
---|---|
Aceitar alterações | Confirma todas as alterações feitas neste DataSet desde que ele foi carregado ou desde que AcceptChanges foi chamado pela última vez. |
Claro | Limpa todos os dados do DataSet removendo todas as linhas de todas as tabelas. |
Obter alterações | Obtém uma cópia do DataSet que contém todas as alterações feitas no DataSet desde que ele foi carregado pela última vez ou desde que AcceptChanges foi chamado. |
ObterErros | Obtém uma matriz de objetos DataRow contendo erros. |
ImportarLinhas | Copie o DataRow no DataTable, mantendo todas as configurações de propriedade e valores iniciais e atuais. |
CarregarDataRow | Encontre e atualize linhas específicas. Se nenhuma linha correspondente for encontrada, uma nova linha será criada com o valor fornecido. |
Mesclar | Mescla a matriz especificada de objetos DataSet, DataTable ou DataRow no DataSet ou DataTable atual. |
Nova linha | Crie um novo DataRow com o mesmo esquema da tabela. |
Rejeitar alterações | Reverter todas as alterações feitas na tabela desde que ela foi carregada ou desde que AcceptChanges foi chamado pela última vez. |
Reiniciar | Limpa todas as tabelas e remove todos os relacionamentos, restrições externas e tabelas do DataSet. As subclasses devem substituir Reset para restaurar o DataSet ao seu estado original. |
Selecione | Obtém uma matriz de objetos DataRow. |
O objeto DataRow representa uma linha na tabela e possui as seguintes propriedades importantes:
propriedade | descrever |
---|---|
Tem erros | Indica se há erros. |
Unid | Obtenha ou defina os dados armazenados em uma coluna específica. |
Matrizes de itens | Obtenha ou defina todos os valores nesta linha. |
Mesa | Retorne a tabela pai. |
A tabela a seguir lista os métodos importantes da classe DataRow:
método | descrever |
---|---|
Aceitar alterações | Aplica todas as alterações desde que este método foi chamado. |
Começar | Comece a operação de edição. |
Cancelar | Cancele a operação de edição. |
Excluir | Exclua linhas de dados. |
Fim | Finalize a operação de edição. |
GetChildRows | Obtenha as sub-linhas desta linha. |
ObterParentRow | Obtenha a linha pai. |
ObterParentRows | Obtenha a linha pai do DataRow. |
Rejeitar alterações | Reverta todas as alterações feitas após a chamada de AcceptChanges. |
O objeto DataAdapter atua como intermediário entre o objeto DataSet e o banco de dados. Isso ajuda o DataSet a obter dados de vários bancos de dados ou outras fontes de dados.
Os objetos DataReader são uma alternativa à combinação de DataSet e DataAdapter. Este objeto fornece acesso direcionado aos registros de dados no banco de dados. Esses objetos são adequados apenas para acesso somente leitura, como preencher uma lista e depois desconectá-la.
O objeto DbConnection representa a conexão com a fonte de dados. Esta conexão pode ser compartilhada entre diferentes objetos de comando. Um objeto DbCommand representa um comando ou processo armazenado que é enviado ao banco de dados para recuperar ou manipular dados.
Até agora, usamos tabelas e bancos de dados de nossos computadores. Neste caso, criaremos uma tabela, adicionaremos colunas, linhas e dados e exibiremos a tabela usando um controle GridView.
O código do arquivo fonte é o seguinte:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="createdatabase._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server"> </asp:GridView> </div> </form> </body></html>
O código do arquivo é o seguinte:
namespace createdatabase{ public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataSet ds = CreateDataSet(); GridView1.DataSource = ds.Tables["Student"]; GridView1.DataBind(); } } private DataSet CreateDataSet() { //creating a DataSet object for tables DataSet dataset = new DataSet(); // creating the student table DataTable Students = CreateStudentTable(); dataset.Tables.Add(Students); return dataset; } private DataTable CreateStudentTable() { DataTable Students = new DataTable("Student"); // adding columns AddNewColumn(Students, "System.Int32", "StudentID"); AddNewColumn(Students, "System.String", "StudentName"); AddNewColumn(Students, "System.String", "StudentCity"); // adding rows AddNewRow(Students, 1, "MH Kabir", "Kolkata"); AddNewRow(Students, 1, "Shreya Sharma", "Delhi"); AddNewRow(Students, 1, "Rini Mukherjee", "Hyderabad"); AddNewRow(Students, 1, "Sunil Dubey", "Bikaner"); AddNewRow(Students, 1, "Rajat Mishra", "Patna"); return Students; } private void AddNewColumn(DataTable table, string columnType, string columnName) { DataColumn column = table.Columns.Add(columnName, Type.GetType(columnType)); } //adding data into the table private void AddNewRow(DataTable table, int id, string name, string city) { DataRow newrow = table.NewRow(); newrow["StudentID"] = id; newrow["StudentName"] = name; newrow["StudentCity"] = city; table.Rows.Add(newrow); } }}
Ao executar o programa, observe os seguintes aspectos:
O programa primeiro cria uma coleção de dados e, em seguida, vincula-a usando o método DataBind() do controle GridView.
O método Criadodataset() é uma função definida pelo usuário que cria um novo objeto DataSet e chama o método CreateStudentTable() adicional definido pelo usuário para criar tabelas e, em seguida, adicioná-las à coleção de tabelas do DataSet.
O método CreateStudentTable() chama os métodos AddNewColumn() e AddNewRow() definidos pelo usuário para criar as colunas e linhas da tabela e adicionar dados às linhas. Quando a página é executada, ela retorna as linhas da tabela conforme mostrado abaixo: