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 10 : 05
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 085 - Capítulo 10 - Estabelecendo Conexões

Uma coisa não mudou no ADO.NET, em relação ao ADO: o primeiro passo é estabelecer uma conexão com o banco de dados. Embora com ADO.NET tenhamos um modelo desconectado, conforme descrito anteriormente, o primeiro passo é fazer uma conexão com o banco de dados. Uma vez estabelecida a conexão, obtemos os dados desejados e podemos trabalhar com estas dados diretamente no navegador, desconectados do banco de dados. Uma vez feita as alterações necessárias, sincronizamos os dados com o banco de dados.

Para estabelecer uma conexão com um banco de dados do SQL Server , devemos utilizar, preferencialmente, a classe SqlConnection, do namespace System.Data.SqlClient.

Para acessar um banco de dados utilizando o OLE-DB Provider correspondente, utilizamos a classe OleDbConnection do namespace System.Data.OleDb. Como existe um OLE-DB Provider para o SQL Server , também poderíamos utilizar a classe OleDbConnection para fazer uma conexão com o SQL Server , porém a classe SqlConnection é bem mais eficiente, em termos de desempenho, pois foi especificamente projetada para trabalhar com o SQL Server 2000, assim como foram todas as classes do namespace System.Data.SqlClient.

Vamos estudar estas duas classes.

Estabelecendo uma conexão com o SQL Server 2000 – SqlConnection.

A classe SqlConnection faz parte do namespace System.Data.SqlClient. Esta classe é utilizada para estabelecer uma conexão com um servidor SQL Server. Diferente do que acontecia com ADO, não podemos executar um comando SQL, utilizando a classe SqlConnection. Ainda neste capítulo estudaremos as classes utilizadas para executar comandos em um banco de dados.

A seguir temos um exemplo de criação de um objeto do tipo SqlConnection:

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

O parâmetro passado é uma string que contém as informações necessárias para estabelecer a conexão com o banco de dados. Mais adiante veremos um exemplo de utilização e criação de uma conexão.

Na Tabela 10.1 temos uma descrição das principais propriedades da classe SqlConnection:

Propriedade Descrição
ConnectionString É utilizada para definir ou retornar uma string de texto onde são informados os diversos parâmetros para estabelecer a conexão, como por exemplo o nome do servidor, a instância, o nome do banco de dados, o nome de login e senha.
ConnectionTimeOut Define por quanto tempo é feita a tentativa de estabelecer a conexão. Após o tempo definido nesta propriedade, a tentativa é cancelada e um erro é gerado.
Database É utilizada para definir ou retornar o nome do banco de dados que será utilizado quando a conexão for estabelecida.
DataSource Retorna o nome da instância do SQL Server com a qual foi estabelecida uma conexão.
ServerVersion Retorna uma string informando a versão do servidor SQL Server com o qual a conexão foi estabelecida.
State Retorna o estado atual da conexão.

Tabela 10.1 Principais propriedades da classe SqlConnection.

Vamos apresentar um pequeno exemplo, onde criamos uma conexão com o banco de dados pubs da instância SERVIDOR\NETSDK (conforme descrito anteriormente). Uma vez estabelecida a conexão, vamos exibir as propriedades desta conexão em um Web Server Control do tipo TextArea. Vamos utilizar o evento Page_Load, da página ASP.NET, para estabelecer a conexão com o banco de dados pubs.

Na Listagem 10.1 temos o código para o exemplo proposto.

Listagem 10.1 – A classe SqlConnection – chap10ex1.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 MinhaConexão = new 
      SqlConnection("server=SERVIDOR\\NETSDK;uid=sa;pwd=;database=pubs");
      // Declaro uma variável do tipo String:  auxPropriedades.
      // A  variável auxPropriedades irá conter o valor das propriedades 
      // da  conexão minhaConexão.
      String  auxPropriedades;
       auxPropriedades = "Propriedades da conexão:";
       auxPropriedades = auxPropriedades + "\n\n" +  "ConnectionString: " + 
                                               MinhaConexão.ConnectionString.ToString();
       auxPropriedades = auxPropriedades + "\n\n" + "Database:  " + 
                                               MinhaConexão.Database.ToString();
       auxPropriedades = auxPropriedades + "\n\n" + "DataSource:  " + 
                                               MinhaConexão.DataSource.ToString();
       auxPropriedades = auxPropriedades + "\n\n" + "State:  " + 
                                               MinhaConexão.State.ToString();
 
      ExibePropriedades.Font.Bold=true;
       ExibePropriedades.Text=auxPropriedades; 
                }
</script>
<body>
   <h3><font  face="Verdana">Classe SqlConnection!!!</font></h3>
            <asp:TextBox 
                 runat=server
                 id="ExibePropriedades"
                 Text=""
                 Rows="10"
                 Cols="70"
                 Font_Face="Arial"  Font_Size="3"
                 BackColor="lightblue"
                 TextMode="MultiLine"
            />
</body>
</html>

Digite o código da Listagem 10.1 e salve o mesmo em um arquivo chamado chap10ex1.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/chap10ex1.aspx

Ao carregar a página você irá obter uma página semelhante a página indicada na Figura 10.5.

Curso Completo de ASP.NET - Júlio Battisti
Figura 10.5 A classe SqlConnection.

Comentários sobre o código do exemplo – Chap10Ex1.aspx.

  • Observe que a primeira coisa que fizemos foi referenciar os namespaces System.Data e System.Data.SqlClient:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

Se não fizéssemos essa referência, obteríamos um erro de compilação, ao carregar a página, conforme indicado na Figura 10.6.

Curso Completo de ASP.NET - Júlio Battisti
Figura 10.6 Erro por não referenciar os namespaces necessários.

Observe o texto em destaque, onde é dito que não foi possível encontrar SqlConnection. Isto acontece porque esta classe faz parte do namespace System.Data.SqlClient, o qual não foi referenciado na página ASP.NET.

  • Em seguida criamos um variável MinhaConexão, baseada na classe SqlConnection:
SqlConnection MinhaConexão = new 
SqlConnection("server=SERVIDOR\\NETSDK;uid=sa;pwd=;database=pubs");

Observe que este é um comando único, que foi dividido em duas linhas por falta de espaço. Declaramos a variável MinhaConexão como sendo do tipo SqlConnection, ao mesmo tempo que inicializamos esta variável, passando como parâmetro uma string de conexão. Na string passada como parâmetro são definidas as seguintes informações:

            Nome da instância do SQL Server: SERVIDOR\NETSDK.

            Nome do usuário: uid=sa.

            Senha: pwd= , neste caso significa senha em branco.

            Banco de dados para fazer a conexão: database=pubs.

É importante salientar que o objeto do tipo SqlConnection foi criado, porém ainda não foi estabelecida a conexão, conforme pode ser confirmado pelo valor da propriedade State=Closed, na Figura 10.5.

  • No restante do evento Load, montamos uma string (auxPropriedades), onde vamos concatenando o nome e o valor das propriedades do objeto MinhaConexão. Observe que anexamos dois caracteres de nova linha - \n\n. Isso é feito para ir para uma nova linha a cada propriedade (um \n) e para deixar uma linha em branco entre a exibição de cada propriedade (mais um \n).

Após termos montado a string auxPropriedades, definimos a fonte do controle ExibePropriedades para negrito e atribuímos o valor da variável auxPropriedades, à propriedade Text do controle ExibePropriedades, conforme indicado no fragmento a seguir:

ExibePropriedades.Font.Bold=true;
ExibePropriedades.Text=auxPropriedades;
  • O controle ExibePropriedades é um Web Server Control do tipo TextBox com múltiplas linhas. Para maiores informações sobre este controle, consulte o Capítulo 9.

Na Tabela 10.2 temos uma descrição dos principais métodos da classe SqlConnection:

Método Descrição
Open Abre a conexão de acordo com as definições da propriedade ConnectionString
Close Fecha a conexão com o banco de dados.
ChangeDatabase Altera o banco de dados associado com a conexão.

Tabela 10.2 Principais métodos da classe SqlConnection

O principal evento do objeto SqlConnection é o evento StateChange. Este evento ocorre quando o estado da conexão é alterado de Open para Closed ou vice-versa.

No exemplo da Listagem 10.1, podemos adicionar o seguinte comando, logo após a criação da conexão MinhaConexão:

MinhaConexão.Open();

Este comando abre a conexão MinhaConexão.Após inserirmos este comando na Listagem 10.1 e recarregarmos a página, obteremos o resultado indicado na Figura 10.7.

Curso Completo de ASP.NET - Júlio Battisti
Figura 10.7 Utilizando o método Open da classe SqlConnection.

Estabelecendo uma conexão com o Microsoft Access – OleDbConnection.

A classe OleDbConnection faz parte do namespace System.Data.OleDb. Esta classe é utilizada para estabelecer uma conexão com uma fonte de dados, para a qual exista um OLE-DB Provider. Diferente do que acontecia com ADO, não podemos executar um comando SQL, utilizando a classe OleDbConnection, ao invés disso devemos utilizar um objeto Command. Ainda neste capítulo estudaremos as classes utilizadas para executar comandos em um banco de dados.

A seguir temos um exemplo de criação de um objeto do tipo OleDbConnection:

      String DefineConexão = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" +
                             "DATA SOURCE=c:\\meus documentos\\NorthWind.mdb";
      OleDbConnection MinhaConexão = new OleDbConnection(DefineConexão);

Primeiro definimos uma string chamada DefineConexão. Esta string contém as informações necessárias para estabelecer a conexão com um banco de dados do Microsoft Access. É importante salientar a utilização das duas barras invertidas (\\), ao invés de uma única barra. Como a barra invertida é utilizada para caracteres de escape, no C#, como por exemplo: \n para quebra de linha, quando queremos representar uma barra e não um caractere de escape, precisamos colocar duas barras. Se você colocar somente uma barra, irá obter o erro indicado na Figura 10.8, quando tentar carregar a página:

Curso Completo de ASP.NET - Júlio Battisti
Figura 10.8 Erro por usarmos um única barra (\) ao invés de duas barras (\\).

Observe a mensagem em destaque, na Figura 10.8, informando que temos um caractere de escape, inválido. Em seguida criamos um objeto do tipo OleDbConnection, chamado MinhaConexão e passamos a string DefineConexão como parâmetro para o método construtor do objeto MinhaConexão.

Na Tabela 10.3 temos os componentes que podem fazer parte da string de conexão (ConnectionString), para o OLE-DB Provider do Microsoft Access.

Propriedade Descrição
Provider Deve ser especificado o OLE DB Provider para o Microsoft Access. Para esta propriedade utilizamos o seguinte valor: Microsoft.Jet.OLEDB.4.0.
DataSource Informamos o caminho para o arquivo .mdb. Por exemplo, C:\\Arquivos de programas\\NorthWind.mdb.
User ID Especifica o nome do usuário com a qual a conexão será estabelecida. Caso esta propriedade não seja informada, a mesma será definida como “admin”, o qual é o usuário  padrão para o Microsoft Access.
Password Informa a senha para o usuário que fará a conexão. Caso esta propriedade não seja informada, a mesma será definida como “ “, ou seja, senha em branco.

Tabela 10.3 Definindo a propriedade ConnectionString para uma fonte do Microsoft Access.

Na Tabela 10.4 temos uma descrição das principais propriedades da classe OleDbConnection:

Propriedade Descrição
ConnectionString É utilizada para definir ou retornar uma string de texto onde são informados os diversos parâmetros para estabelecer a conexão, como por exemplo o nome do servidor, a instância, o nome do banco de dados, o nome de login e senha.
ConnectionTimeOut Define por quanto tempo é feita a tentativa de estabelecer a conexão. Após o tempo definido nesta propriedade, a tentativa é cancelada e um erro é gerado.
Database É utilizada para definir ou retornar o nome do banco de dados que será utilizado quando a conexão for estabelecida. Utilizada, normalmente, para conexão com o SQL Server ou ORACLE.
State Retorna o estado atual da conexão.

Tabela 10.4 Principais propriedades da classe OleDbConnection.

Vamos apresentar um pequeno exemplo, onde criamos uma conexão com o banco de dados C:\Meus documentos\NorthWind.mdb. Uma vez estabelecida a conexão, vamos exibir as propriedades desta conexão em um Web Server Control do tipo TextArea. Vamos utilizar o evento Page_Load, da página ASP.NET, para estabelecer a conexão com o banco de dados pubs.

Na Listagem 10.2 temos o código para o exemplo proposto.

Listagem 10.2 – A classe OleDbConnection – chap10ex2.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);
      MinhaConexão.Open();
      // Declaro uma variável do tipo String:  auxPropriedades.
      // A variável auxPropriedades irá conter  o valor das propriedades 
      // da conexão minhaConexão.
      String auxPropriedades;
      auxPropriedades = "Propriedades da  conexão:";
      auxPropriedades = auxPropriedades +  "\n\n" + "ConnectionString: " + 
                                   MinhaConexão.ConnectionString.ToString();
      auxPropriedades =  auxPropriedades + "\n\n" + "Database: " + 
                                   MinhaConexão.Database.ToString();
      auxPropriedades = auxPropriedades +  "\n\n" + "DataSource: " + 
                                   MinhaConexão.DataSource.ToString();
      auxPropriedades = auxPropriedades +  "\n\n" + "State: " + 
                                   MinhaConexão.State.ToString();
      ExibePropriedades.Font.Bold=true;
      ExibePropriedades.Text=auxPropriedades;
   }
</script>
<body>
    <h3><font face="Verdana">Classe OleDbConnection!!!</font></h3>
            <asp:TextBox 
                 runat=server
                 id="ExibePropriedades"
                 Text=""
                 Rows="10"
                 Cols="70"
                 Font_Face="Arial" 
                 Font_Size="3"
                 BackColor="lightblue"
                 TextMode="MultiLine"
            />
</body>
</html>

Digite o código da Listagem 10.2 e salve o mesmo em um arquivo chamado chap10ex2.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/chap10ex2.aspx

você irá obter uma página semelhante a página indicada na Figura 10.9.

Curso Completo de ASP.NET - Júlio Battisti
Figura 10.9 Propriedades da classe OleDbConnection.

Comentários sobre o código do exemplo – Chap10Ex2.aspx.

Os mesmos comentários feitos para o exemplo da Listagem 10.1.

Na Tabela 10.5 temos uma descrição dos principais métodos da classe OleDbConnection:

Método Descrição
Open Abre a conexão de acordo com as definições da propriedade ConnectionString.
Close Fecha a conexão com o banco de dados.
ChangeDatabase Altera o banco de dados associado com a conexão. Utilizado para conexões com o SQL Server  ou

Tabela 10.5 Principais métodos da classe OleDbConnection.

O principal evento do objeto SqlConnection é o evento StateChange. Este evento ocorre quando o estado da conexão é alterado de Open para Closed ou vice-versa.

Muito bem, já sabemos estabelecer uma conexão com um banco de dados. E agora? Ainda precisamos aprender como se fazer as seguintes operações:

  • Definir um comando para ser executado no banco de dados.
  • Retornar dados de uma ou mais tabelas.
  • Retornar informações sobre os relacionamentos entre as tabelas.
  • Exibir os resultados obtidos.

Nos próximos tópicos aprenderemos a realizar estas operações.

« 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