C# - ADO .NET para Iniciantes - II
Este é um
minicurso sobre ADO .NET
para iniciantes usando a linguagem C#. Esta chegando agora ??? |
Então acompanhe o primeiro artigo:
Os requisitos mínimos para que você aproveite este mini-curso é possuir um pouco de conhecimento sobre lógica de programação.
Se você não conhece a linguagem C# pode ler os seguintes artigos :
Se você já conhece VB .NET e esta querendo a aprender C# sugiro que você leia o meu artigo:
O material necessário para acompanhar o curso é: (Irei utilizar o Visual C# 2008 Express Edition)
1-
Visual C# 2008 Express
Edition
2- SharpDevelop 2.2
3- SQL Server 2005 Express Edition
Todos esses programas são gratuitos e portanto você não vai gastar um centavo neste curso.
Durante o curso vamos desenvolver uma aplicação com acesso a dados usando C# de forma que você irá fazendo e aprendendo na prática os principais conceitos básicos envolvidos.
Mas chega de papo e vamos ao que interessa...
As Classes e os Namespaces da ADO .NET
O seis principais namespaces (espaços de nome) da ADO .NET são mostrados abaixo resumidamente :
Namespaces | Descrição |
System.Data | É o principal espaço de nomes da ADO .NET e contém as classes usadas por todos os provedores; classes que representam tabelas, colunas, linhas e também a classe DataSet. Além disso possui diversas interfaces como IDbCommand, IDbConnection, e IDbDataAdapter que são usadas por todos os provedores gerenciados. |
System.Data.Commom | Define as classes comuns usadas como classes base para os provedores de dados. Todos eles compartilham estas classes. Ex: DbConnection e DbDataAdapter. |
System.Data.OleDb | Define classes que trabalham com fonte de dados OLE DB usando o provedor .NET OleDb. |
System.Data.Odbc | Define classes que trabalham com fonte de dados ODBC usando o provedor .NET Odbc. |
System.Data.SqlClient | Define classes que trabalham com fonte de dados SQL Server 7.0 ou superior. |
System.Data.SqlTypes | Define classes que representam tipos de dados específicos para o SQL Server. |
A ADO .NET possui 3 tipos distintos de classes referenciadas como:
Os provedores de dados contém objetos Connection, Command, DataAdatper e DataReader que foram apresentados na primeira parte deste artigo.
Com ADO .NET você primeiro cria um objeto Connection e fornece ao mesmo informação sobre a string de conexão.
A seguir você criar um objeto Command e fornece a ele detalhes da instrução SQL que deverá ser executada. Esta informações pode usar parâmetros.
Se o objeto Command retornar um conjunto de registros e você decidir usá-lo deverá criar um objeto DataAdapter e preencher um objeto DataSet ou DataTable.
Usando o objeto Connection
Um objeto Connection cria uma ligação (ou conexão) com uma fonte de dados específica. Este objeto deve conter a informação necessária para se conectar a fonte de dados usando informações como o provedor, o caminho da base de dados, o usuário e a senha (se necessário). Esta informação esta contida na string de conexão. Esta informação também pode ser armazenada no arquivo web.config , em um arquivo texto, no registro do windows, etc.
Cada tipo de provedor de dados possui um objeto connection específico, assim um provedor de dados que trabalha com uma fonte de dados SQL Server inclui uma classe SqlConnection que realiza este tipo de operação. Já um provedor que trabalha com uma fonte de dados OLE DB possui uma classe OleDbConnection.
Obs: Podemos também efetuar a conexão com outros banco de dados como MySQL, FireBird, PostGreSQL , DB2, etc. Neste caso será necessário usar um conector apropriado geralmente fornecido pelo fabricante ou usar um provedor de dados ODBC(não muito recomendável).
De forma geral podemos descrever as propriedades para uma classe Connection assim :
Propriedade | Descrição |
ConnectionString | Contém informações pelo objeto Connection para efetuar a conexão com o banco de dados; |
DataBase | Retorna o nome do banco de dados após a conexão ser aberta; |
DataSource | Retorna o nome da instância do banco de dados usado pelo objeto Connection; |
State | Retorna o estado atual da conexão:
Valores possíveis :
|
A seguir temos o trecho de código genérico usado para efetuar a conexão com o SQL Server :
using
System.Data;
//1-definição das informações para montar a string de conexão string Server = "localhost"; string Username = "usuario"; string Password = "senha"; string Database = "banco de dados"; //2-montagem da string de conexão string ConnectionString = "Data Source=" + Server + ";"; ConnectionString += "User ID=" + Username + ";"; ConnectionString += "Password=" + Password + ";"; ConnectionString += "Initial Catalog=" + Database; //3-cria uma instância do objeto Connection em memória SqlConnection SQLConnection = new SqlConnection(); try { //4- atribui a string de conexão e abre a conexão SQLConnection.ConnectionString = ConnectionString; SQLConnection.Open(); //realiza alguma operação ...... } catch (Exception Ex) { MessageBox.Show(Ex.Message); } |
Para a conexão com o SQL Server podemos também declarar e instanciar o objeto SqlConnection ao mesmo tempo conforme o código abaixo:
SqlConnection conn = new SqlConnection("
Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI");Neste caso o objeto SqlConnection instanciado usa um construtor com um único argumento do tipo string , a famosa string de conexão. Veja a seguir sua descrição detalhada :
Data Source | Identifica o servidor e pode ser a máquina local (localhost), um dns ou um endereço IP. |
Initial Catalog | O nome do banco de dados |
Integrated Security | Defina para SSPI para fazer a conexão usando a autenticação do WIndows.(Usar Integrated Security é seguro somente quando você esta em uma máquina fora da rede) |
User ID | Nome do usuário definido no SQL Server. |
Password | Senha do usuário definida no SQL Server. |
Um exemplo de conexão com o meu servidor MAC/SQLEXPRESS usando o banco de dados Northwind.mdf com o usuário macoratti e senha 123456 seria:
SqlConnection conn = new SqlConnection("Data Source=MAC/SQLEXPRESS;Initial Catalog=Northwind;User ID=macoratti;Password=123456");
A sequência de operações que ocorrem quando da abertura de uma conexão pode ser resumida assim:
Um exemplo completo bem simples pode ser visto a seguir:
using System;using System.Data; using System.Data.SqlClient; /// <summary> /// Demonstra como trabalhar abrir uma conexão com SqlConnection /// </summary> class SqlConnectionDemo{ static void Main() { // 1. Instancia a conexão(objeto SqlConnection) SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI"); // // define um SqlDataReader nulo SqlDataReader dr = null; try { // 2. Abre a conexão conn.Open(); // 3. Passa conexão para o objeto command SqlCommand cmd = new SqlCommand("select * from Customers", conn); // // 4. Usa conexão // obtêm o resultado da consulta dr = cmd.ExecuteReader(); // imprime o codigo do cliente para cada registro while (dr.Read()) { Console.WriteLine(dr[0]); } } finally { // fecha o reader if (dr != null) { dr.Close(); } // 5. Fecha a conexão if (conn != null) { conn.Close(); } } } } |
O código usa um objeto SqlCommand o qual realiza uma consulta na tabela Customers.
O resultado é retornado como um SqlDataReader e o loop While percorre e lê a primeira coluna de cada linha do conjunto de registros retornados que é a coluna CustomerID. (poderíamos ter obtido mais colunas como dr[1], dr[2], etc.)
Nota: Podemos também obter os dados das colunas pelo nome dos campos : Ex: dr["CustomerID"].
Ao usar o objeto Connection você deve sempre ter o cuidado de fechá-lo caso contrário haverá impacto no desempenho da sua aplicação, por isso estou usando um bloco Try/Finally, onde o bloco Finally garante que a conexão será fechada pois sempre será executado.
Note que tomamos a precaução de verificar se a conexão e o objeto DataReader eram nulos antes de fechá-los para evitar uma exceção.
Este exemplo mostra como usar o SqlConnection com o objeto SqlDataReader o qual requer que a conexão seja fechada explicitamente.
No próximo artigo irei falar sobre o objeto SqlCommand.
Eu sei é apenas C# mas eu gosto...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#