NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
ASP.NET - CURSO COMPLETO Autor: Júlio Battisti |
||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Lição 089 - Capítulo 10 - O objeto DataSet | ||||||||||||||||||||||
Os objetos SqlDataAdapter/OleDbDataAdapter, descritos no tópico anterior são utilizados para executar um comando SQL ou um Stored Procedure, em um banco de dados e retornar um ou mais conjuntos de dados. Precisamos de uma estrutura capaz de receber e manipular os dados retornados; esta estrutura é o objeto DataSet. O objeto DataSet é derivado da classe DataSet, do namespace System.Data. O objeto DataAdapter executa um comando através de uma conexão e retorna os dados para um objeto DataSet. A conexão é desfeita, pois o objeto DataSet fornece as funcionalidades necessárias para acessarmos e manipularmos os dados, estando desconectados do servidor. Acessamos e alteramos os dados conforme necessário e depois as alterações efetuadas são sincronizadas com o servidor. DataSet é, sem dúvida, o principal objeto do ADO.NET, assim como o objeto RecordSet é o principal objeto do ADO. Um objeto DataSet é formado por uma coleção de objetos do tipo DataTable, os quais pertencem à coleção Tables. Para representar o relacionamento entre dois objetos do tipo DataTable, utilizamos um objeto do tipo DataRelation. Por exemplo, podemos criar um DataSet que contém duas tabelas: Pedidos e Clientes. A tabela Clientes relaciona-se com a tabela Pedidos, através de um relacionamento do tipo um para vários, ou seja, um cliente pode fazer vários pedidos. Podemos representar este relacionamento utilizando um objeto do tipo DataRelation. Nota: Para maiores detalhes sobre o modelo relacional de dados e relacionamentos entre tabelas, consulte o Anexo II. Neste anexo também são descritos os conceitos de Chave primária, Chave Estrangeira, normalização e integridade de dados. Podemos garantir a integridade dos dados através da definição de campos do tipo Chave Primária – utilizando o objeto UniqueConstraint; e da definição de Chaves Estrangeiras - utilizando o objeto ForeignKeyConstraint. O objeto DataSet lê e grava dados e a estrutura dos dados no formato de documentos XML, os quais podem ser enviados pela Internet via protocolo HTTP, o que facilita a troca de informações com sistemas de outras empresas, sistemas estes também habilitados ao XML. Na Tabela 10.11 temos uma descrição das principais propriedades da classe DataSet:
Tabela 10.11 Principais propriedades da classe DataSet. Na Tabela 10.12 temos uma descrição dos principais métodos da classe DataSet:
Tabela 10.12 Principais métodos da classe DataSet. Neste momento já somos capazes de estabelecer uma conexão com o banco de dados, definir um objeto DataAdapter para executar um comando através da conexão estabelecida e preencher um objeto DataSet com os dados retornados. A próxima etapa exibir os dados obtidos. A exibição dos dados é a única coisa que o usuário vê, ao acessar a página. Existem maneiras variadas para exibir os dados em uma página ASP.NET. Neste capítulo estaremos utilizando o controle DataGrid. Em seguida apresentaremos um exemplo simples de conexão com um banco de dados do Microsoft Access. Neste exemplo vamos utilizar o controle DataGrid. Mais adiante, neste capítulo, iremos estudar este controle, em detalhes. Nota: Também utilizaremos um objeto do tipo DataView que será detalhado mais adiante. Vamos conectar com o banco de dados C:\Meus documentos\NorthWind.mdb. Definiremos um comando SQL que retorna os seguintes campos da tabela Clientes:
Na Listagem 10.4 temos o código para o exemplo proposto. Listagem 10.4 – Um exemplo completo – chap10ex4.aspx. <%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="C#" runat="server">
protected void Page_Load(Object Src, EventArgs E )
{
// Crio uma conexão com o banco de dados pubs localizado no servidor local.
// Vamos acessar a instância SERVIDOR\NETSDK.
String DefineConexão= "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" +
"DATA SOURCE=c:\\meus documentos\\NorthWind.mdb";
OleDbConnection MinhaConexão = new OleDbConnection(DefineConexão);
// Utilizamos um objeto DataAdapter para executar um comando SQL,
// o qual retorna todos os dados da tabela "Clientes".
OleDbDataAdapter MeuComando = new OleDbDataAdapter("SELECT CódigoDoCliente,"
+ "NomeDaEmpresa, Cidade, País FROM Clientes", MinhaConexão);
// Criamos e preenchemos um objeto DataSet.
// Observe que não temos mais o objeto Recordset,
// como era de praxe com o ASP 3.0.
DataSet ds = new DataSet();
// Utilizo o método Fill do objeto DataAdapter, para preencher
// o objeto DataSet, com os dados retornados pelo comando SQL.
MeuComando.Fill(ds);
// Conectamos um controle DataGrid com o DataSet criado anteriormente.
// MinhaGrade é o id (nome) de um controle do tipo
// DataGrid que está na seção de apresentação da página.
DataView source = new DataView(ds.Tables[0]);
MinhaGrade.DataSource = source ;
MinhaGrade.DataBind();
}
</script>
<body>
<%-- Exibe as informações do DataGrid no corpo da página. --%>
<h3><font face="Verdana">Clientes da empresa North Wind!!!</font></h3>
<ASP:DataGrid id="MinhaGrade" runat="server"
Width="700"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
MaintainState="false"
/>
</body>
</html>
Digite o código da Listagem 10.4 e salve o mesmo em um arquivo chamado chap10ex4.aspx, na pasta chap10, dentro da pasta wwwroot, conforme descrito no item: “Check List para acompanhar os exemplos deste livro”, no Capítulo 6. Para acessar esta página utilize o seguinte endereço: http://localhost/chap10/chap10ex4.aspx você irá obter a página indicada na Figura 10.12.
Comentários sobre o código do exemplo – Chap10Ex4.aspx.
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
OleDbDataAdapter MeuComando = new OleDbDataAdapter("SELECT CódigoDoCliente," +
"NomeDaEmpresa,País,Cidade FROM Clientes", MinhaConexão);
Conforme descrevemos anteriormente, podemos utilizar uma abordagem diferente: Primeiro criar um objeto OleDbCommand (1 e 2 a seguir), depois declaramos um objeto DataAdapter e passamos o objeto Command para a propriedade SelectCommand do objeto OleDbDataAdapter (3 e 4 a seguir): 1. string TextoDoComando = "SELECT CódigoDoCliente," +
"NomeDaEmpresa,País,Cidade FROM Clientes”;
2. OleDbCommand MeuComando = new leDbCommand(TextoDoComando,MinhaConexão);
3. OleDbDataAdapter MeuDataAdapter = new OleDbDataAdapter( );
4. MeuDataAdapter.SelectCommand = MeuComando;
DataSet ds = new DataSet();
MeuDataAdapter.Fill(ds);
O nome do objeto DataSet é passado como parâmetro para o método Fill.
DataView source = new DataView(ds.Tables[0]);
Em seguida definimos a propriedade DataSource do controle DataGrid (MinhaGrade), como sendo igual ao objeto DataView recém criado: MinhaGrade.DataSource = source ;
O passo final é chamar o método DataBind do controle DataGrid: MinhaGrade.DataBind();
Feito isso, o controle DataGrid, colocado na seção de apresentação da página, irá exibir os registros retornados, no formato de uma tabela. Observe que não precisamos iniciar um laço While para navegar por cada registro do objeto DataView. Também não precisamos utilizar um “monte” de comandos Response.Write para montar a página de saída, como fazíamos no ASP 3.0. Todo este trabalho é feito, automaticamente, pelo controle DataGrid. Este exemplo salienta bem o poder e flexibilidade dos Web Server Controls, como é o caso do controle DataGrid. Nota: Ainda neste capítulo estudaremos o objeto DataView e o controle DataGrid, em maiores detalhes.
OleDbDataAdapter MeuComando = new OleDbDataAdapter("SELECT CódigoDoCliente,"
+ "NomeDaEmpresa, Cidade, País FROM Clientes where País=’Alemanha’", MinhaConexão);
Você obterá o resultado indicado na Figura 10.13.
|
||||||||||||||||||||||
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2024 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI