Olá pessoal, neste artigo eu vou mostrar como conectar no banco de dados de forma manual usando a linguagem C#. Essa conexão pode ser feita para aplicativos desktop ou web sem qualquer problema. Resolvi criar esse artigo básico porque alguns desenvolvedores iniciantes me mandaram e-mail pedindo.
No ano de 2012, publiquei um artigo falando e explicando algumas coisas sobre conexão com banco de dados SQL Server, Oracle, MySQL e SQL CE (para aplicativos móveis). A ideia do funcionamento é simples e pode ser aplicada em qualquer banco de dados, só precisa entender o conceito e a sintaxe da string de conexão.

Caso queira verificar o artigo publicado anteriormente, segue o link para leitura:

Existem muitos “frameworks” que te ajudam a conectar ao banco de dados, o grande problema é que você fica sem saber como funciona na prática. Os “frameworks” facilitam a vida das pessoas, geralmente basta configurar um contexto e o resto a API faz, mas será que ela faz da maneira correta? Será que a API gerencia as conexões de forma correta? Pode ser que sim, mas como desenvolvedor você precisa saber um pouco além do “framework”. 

A Microsoft possui o “framework” chamado “Entity Framework” que te ajuda a conectar aos bancos de dados, não só no SQL Server. Você precisa configurar e seguir o manual para que funcione corretamente. Eu vi muitos desenvolvedores fazendo configuração errada, configuração com problemas e no momento buscar os dados em mais de uma tabela ao mesmo tempo, acontece problemas de lentidão.

O próprio “.NET Framework” possui uma classe específica para conectar no banco de dados, na verdade, todos os “frameworks” utilizam essa classe que faz a conexão. A classe é a “System.Data.SqlClient”, específica para conectar no SQL Server. Na prática hoje eu vou mostrar como criar essa conexão na mão, geralmente crio uma classe dentro do seu projeto responsável por conectar e comunicar com o banco. Depois de conectar ao banco de dados é necessário escrever instruções para que seja executado, instruções como inserir, atualizar, deletar e selecionar valores.

Na prática

O primeiro passo é criar uma classe na sua aplicação responsável pela conexão. No topo de sua classe utilize o código da listagem 1.

Listagem 1 – Importando classes
using System;
using System.Data.SqlClient;
using System.Data;

As classe da listagem 1 são importantes para manipulação de dados dentro do código enviando para o banco de dados.

O próximo passo é criar uma variável pública do tipo SqlConnection. A listagem 2 mostra essa variável. Ela será usada para abrir a conexão do banco de dados com o comando “Open”.

Listagem 2 – Variável de conexão SqlConnection.
public SqlConnection sqlConnection;

Com a variável criada fica simples. Basta pegar a string de conexão configurada dentro do arquivo de configuração. Nela existe o nome do banco de dados, usuário, senha, IP, configuração de “Pool” e configuração de segurança. A string de conexão pode ser criptografada ou não, eu gosto de usar a string criptografada, isso devido a problemas de invasão ao servidor por algum hacker, abrindo o arquivo de configuração, se as informações da string estiverem criptografadas o hacker não vai encontrar o usuário e a senha do banco de dados; isso eu vou mostrar em outro momento.

A listagem 3 mostra um exemplo de string de conexão dentro do arquivo de configuração.

Listagem 3 – String de conexão exemplo
Note que na listagem 3, a string possui um nome “StringDeConexao” e é por esse nome que você vai chamar os valores. Note também que existe o nome do servidor, nome do banco de dados, usuario, senha e o provider, o responsável por identificar qual o banco de dados se conecta. Nesse caso é o SQL Server.

O próximo passo é gerar um método dentro da classe que trata a conexão responsável por comunicar com o banco. Listagem 4.

Listagem 4 – Abrindo a conexão
protected void OpenConection(){
sqlConnection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[“StringDeConexao”].ToString();
sqlConnection.Open();
}

A listagem 4 mostra um método simples, até então não foi verificado se a conexão já está aberta, ou se a variável está sendo usada, mas isso é para um outro momento. Note que foi criado uma nova instância da conexão passando como parâmetro a string de conexão que está dentro do arquivo de configuração. Depois basta chamar o método Open(). Vamos melhorar um pouco esse método na listagem 5.

Listagem 5 – Melhorando o método
protected void OpenConection(){
try{
sqlConnection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[“StringDeConexao”].ToString();
if(sqlConnection.State != ConnectionState.Open)
sqlConnection.Open();
}
Catch (Exception ex){
throw ex;
}
}
A listagem 5 melhora um pouco o método de conexão com o banco de dados. A primeira melhoria foi o try e catch, caso aconteça algum erro ele retorna o erro. A segunda melhoria foi verificar o status do banco, se a conexão do banco estiver fechada, ele executa o comando Open().

Para fechar a conexão com o banco de dados é necessário criar outro método dentro da classe. A listagem 6 mostra como fazer.

Listagem 6 – Fechando a conexão
protected void CloseConnection(){
try{
if(sqlConnection.State == ConnectionState.Open)
sqlConnection.Close();
}
Catch (Exception ex){
throw ex;
}
}

Note que na lista 6 é verificado se a conexão está aberta, se tiver ela fecha. Se a conexão já estiver fechada, não precisa executar o comando de fechar. 

Até aqui você aprender como abrir e fechar a conexão com o banco de dados através do código C#. Agora é bom você dividir as classes de acordo com o nome da tabela, por exemplo: no banco de dados existe uma tabela Usuario, seria bom você criar uma classe UsuarioDAO.cs dentro de uma pasta chamada DAO. Isso significa organização de classes, tudo que tratar da tabela de Usuario está dentro da classe UsuarioDAO.cs, entendeu?

Antes da classe DAO seria bom criar uma interface mas vou deixar esse assunto para outro momento. Dentro da classe UsuarioDAO.cs você precisa extender a classe de conexão. A listagem 7 mostra como fazer isso. Lembre-se de organizar suas classes.

Listagem 7 – Criando classe UsuarioDAO.cs
public class UsuarioDAO : Conexao
{
}

Note que depois do nome da classe, existe o dois pontos e o nome da classe de conexão. Isso significa que a classe está extendendo os métodos dentro da outra classe. Agora é só chamar o método para abrir a conexão com o banco de dados. Para não ficar muito grande o artigo, em outro momento vou falar como fazer o select, insert, delete e update de forma segura.

Espero que tenha entendido, eu fico por aqui e qualquer dúvida pode entrar em contato pelo site www.mauriciojunior.org.