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

Você está em: PrincipalArtigosASP.NET › Capítulo 06 : 08
Quer receber novidades e e-books gratuitos?
« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
ASP.NET - CURSO COMPLETO
Autor: Júlio Battisti

Lição 051 - Capítulo 06 - O segundo exemplo - conectando com um banco de dados

O nosso segundo exemplo é um pouco mais complexo do que o exemplo anterior. Vamos apresentar uma página ASP.NET que faz conexão com um banco de dados do SQL Server e exibe todos os registros de uma determinada tabela.

A primeira diferença que você irá notar em relação ao ASP 3.0 é que não temos mais o objeto Recordset, o qual é bastante utilizando com o ASP 3.0, para conexões de páginas com bancos de dados.

A partir do Capítulo 10 estaremos tratando em detalhes da conexão de páginas ASP.NET com banco de dados.

Na Listagem 6.3 temos o código para a criação da página proposta.

Listagem 6.3 – O segundo exemplo: conectando com o banco de dados pubs – chap6ex2.aspx.

<%@ Import Namespace="System.Data"  %>
<%@ Import  Namespace="System.Data.SqlClient" %>
<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.
      SqlConnection  myConnection = new SqlConnection("server=SERVIDOR\\NETSDK;" +
          " uid=sa;pwd=;database=pubs");
            // Conectamos com o banco de  dados utilizando um comando SQL,
            // o qual retorna todos os dados da  tabela "Authors", do banco de 
            //  dados pubs.  
       SqlDataAdapter myCommand = new SqlDataAdapter("SELECT " +
          " * FROM Authors", myConnection);
            // 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();
       myCommand.Fill(ds);
            // Conectamos um controle  DataGrid com o DataSet criado anteriormente. 
            // MyDataGrid é 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]);
       MyDataGrid.DataSource = source ;
       MyDataGrid.DataBind();
   }
</script>
<body>
   <%-- Exibe as informações do DataGrid no  corpo da página. --%>
<h3><font  face="Verdana">Registros da tabela  Authors!</font></h3>
   <%-- Os registros da tabela Authors são  exibidos no DataGrid. --%>
   <ASP:DataGrid  id="MyDataGrid" 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 6.3 e salve o mesmo em um arquivo chamado chap6ex2.aspx, na pasta chap6, dentro da pasta wwwroot, conforme descrito anteriormente. Para acessar esta página utilize o seguinte endereço:

http://localhost/chap6/chap6ex2.aspx

Ao carregarmos esta página no Internet Explorer obtemos o resultado indicado na Figura 6.7

Curso Completo de ASP.NET - Júlio Battisti
Figura 6.7 Os registros da tabela Authors – chap6ex2.aspx.

Alguns comentários sobre o exemplo chap6ex2.aspx, sem entrar em maiores detalhes sobre o código do exemplo.

Cadê o meu objeto Recordset?

Nada de objetos do tipo Recordset. Com ASP.NET utilizamos ADO.NET para fazer a conexão com banco de dados. ADO.NET utiliza o objeto Dataset ao invés do objeto Recordset. Para a conexão com bancos de dados utilizamos uma série de classes do namespace System.Data, o qual faz parte do .NET Framework Class Library.

Para ter acesso as classes de um determinado namespace, precisamos adicionar uma referência ao mesmo, no início da página ASP.NET, utilizando a diretiva Import, conforme indicado no trecho de código a seguir:

<%@ Import Namespace="System.Data"  %>
<%@ Import  Namespace="System.Data.SqlClient" %>

Observe que estamos fazendo referência a dois namespaces: System.Data e System.Data.SqlCliente. Vamos tratar exaustivamente dos membros destes namespaces nos capítulos 10 e 11.

Conectando com o banco de dados.

Na seção de código da página temos os comandos para conexão com o banco de dados pubs da instância SERVIDOR\NETSDK. Um detalhe importante é a maneira como informamos o nome da instância, conforme indicado pelo trecho de código a seguir:

       SqlConnection myConnection = new  SqlConnection("server=SERVIDOR\\NETSDK;" +
       " uid=sa;pwd=;database=pubs");

Observe que utilizamos duas barras invertidas ao invés de uma única barra. Isto é necessário porque a barra invertida é considerada um caractere de escape com significado especial para a linguagem C#. Quando ao invés do caractere de escape, queremos que o C# entenda o mesmo como um caractere normal, temos que precedê-lo de uma barra invertida. Na prática as duas barras invertidas são interpretadas, pelo C#, como uma única barra, o que produz o resultado desejado:

SERVIDOR\NETSDK.

Neste exemplo utilizamos as seguintes classes do namespace System.Data.SqlClient:

  • SqlConnection
  • SqlDataAdapter

Também utilizamos as seguintes classes do namespace System.Data:

  • DataSet
  • DataView

Um controle poderoso para exibir os dados:

Na seção de apresentação utilizamos o controle DataGrid para fazer a exibição dos registros da tabela Authors. Observe o quão poderoso é este controle. Simplesmente através da configuração da sua propriedade DataSource, na seção de código, definimos os registros a serem exibidos pelo controle. Esta definição é feita nas seguintes linhas de código:

       MyDataGrid.DataSource = source ;
      MyDataGrid.DataBind();

Veja que não precisamos utilizar um laço While para percorrer todos os registros da tabela Authors, como tínhamos que fazer com o objeto RecordSet.

O controle DataGrid faz parte dos chamados “Web Server Controls”. No Capítulo 8 aprenderemos a utilizar os diversos Web Server Controls disponíveis.

Posso ter um comando que ultrapassa uma linha?

A resposta é um sonoro "Sim".

Diferente do ASP 3.0, em nossas páginas ASP.NET, os comandos da seção de código podem estar em mais do que uma linha, sem problemas. Inclusive na Listagem 6.3 temos comandos que ultrapassam uma linha e a página carrega sem maiores problemas, conforme exemplificado no trecho a seguir:

SqlDataAdapter myCommand = new  SqlDataAdapter("SELECT " +
" * FROM Authors", myConnection);

Isso é possível pois cada comando do C# é finalizado com um ponte-e-vírgula (;).

O bom e velho SQL continua o mesmo?

A resposta é outro sonoro "Sim".

Você deve ter observado que utilizamos um comando SQL para retornar os dados da tabela authors. Utilizamos um comando SELECT, conforme indicado a seguir:

SqlConnection myConnection = new  SqlConnection("server=SERVIDOR\\NETSDK;" +
" uid=sa;pwd=;database=pubs");

Vamos alterar o comando SQL para introduzir uma condição. Queremos que sejam retornados somente os registros para os autores em que a cidade (city) é Oakland. Para isso basta que seja utilizada uma cláusula where para especificar a condição city=’Oakland’, conforme indicado a seguir:

SqlDataAdapter myCommand = new SqlDataAdapter("SELECT " +
" * FROM Authors where city='Oakland'", myConnection);

Faça esta alteração na página chap6ex2.aspx e salve a nova versão da página na pasta chap6, com o nome de chap6ex3.aspx. Ao carregar esta nova versão, obteremos o resultado indicado na Figura 6.8.

Curso Completo de ASP.NET - Júlio Battisti
Figura 6.8 Definindo um critério com a cláusula where  – chap6ex3.aspx.

No Anexo III apresento uma revisão dos conceitos básicos da linguagem SQL – Structured Query Language. Antes de estudar os capítulos 10 e 11 seria interessante dar uma olhada no Anexo II – O modelo de dados relacionais e no Anexo III – Fundamentos da linguagem SQL.

« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
Quer receber novidades e e-books gratuitos?

 
 

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