Classe para fazer Conexão MS SqlServer em C#(CSharp)
Postado em : 13/07/2016
Conexão com MS SqlServer
Com esta Classe podemos acessar nossa connectionStrings tanto de nosso arquivo Web.Config como configurar os dados de acesso diretamente em nossa Classe.
Instanciando nossa Classe
Podemos instanciar nossa Classe de duas maneiras
Conexao(TipoConexao.Conexao.WebConfig)
quando queremos que os dados de nossa conexão venha da connectionStrings de nosso Web.Config
Conexao(TipoConexao.Conexao.Classe)
quando queremos que os dados de nossa conexão venha dos dados configurados em nossa Classe
Configurando os dados da conexão em nossa Classe
ConexaoWebConfig
o nome de nossa connectionStrings criada em nosso Web.Config
Server
o nome de nosso servidor, se estiver em uma conexão local utilize localhost
Database
o nome de nosso banco de dados
Usuario
o nome do usuário de acesso ao bando de dados
Senha
a senha de acesso ao banco de dados
Exemplo de string de conexão para MS SqlServer no arquivo Web.Config
<configuration> <connectionStrings> <add name="SqlServer" providerName="System.Data.SqlClient" connectionString="Server=localhost,1433;Database=MeuBancoDados;User ID=sa;Password=123456" /> </connectionStrings> </configuration>
Segue nossa Classe para acesso ao SqlServer, crie um arquivo com o nome de Conexao.cs
em seu projeto, copie e cole o código abaixo:
Classe para fazer a conexão com MS SqlServer
/* * Classe acesso MS SqlServer * * Visite nossa página http://www.codigoexpresso.com.br * * by Antonio Azevedo * * Instanciando a Classe * Conexao(TipoConexao.Conexao.WebConfig) -> Lendo string conexao do arquivo Web.Config * Conexao(TipoConexao.Conexao.Classe) -> Lendo dados da conexao de nossa classe * * Configurando nossa Classe * ConexaoWebConfig - > Nome da connectionStrings de nosso arquivo Web.Config * Server - > Nome do servidor, se estiver usando conexao local utilize ´localhost´ * Database - > Nome do Banco de Dados * Usuario - > Nome do usuário de Acesso ao Banco de Dados * Senha - > Senha de Acesso ao Banco de Dados * */ using System; using System.Data.SqlClient; public class Conexao { public string mErro = ""; // Variavel de definição para acesso a connectionStrings do Web.Config private string ConexaoWebConfig = "SqlServer"; // Variaveis de configuração de acesso ao banco de dados private string Server = "localhost"; private string Database = "Escola"; private string Usuario = "sa"; private string Senha = "123456"; public SqlConnection conn; public Conexao(TipoConexao.Conexao TConexao) { GetConexao(TConexao); } public Conexao() { GetConexao(TipoConexao.Conexao.Classe); } // Verifica se existe erro public Boolean ExisteErro() { if (mErro.Length > 0) { return true; } return false; } // Faz a Conexao com o Banco de Dados private void GetConexao(TipoConexao.Conexao TConexao) { try { string connectionStrings = ""; if (TConexao == TipoConexao.Conexao.Classe) { connectionStrings = string.Format("Server={0},1433;Database={1};User ID={2};Password={3}", this.Server, this.Database, this.Usuario, this.Senha); } else { connectionStrings = getWebConfig(this.ConexaoWebConfig); } this.conn = new SqlConnection(connectionStrings); } catch (Exception erro) { this.mErro = erro.Message; this.conn = null; } } // Abre conexao com o Banco de Dados public Boolean OpenConexao() { Boolean _return = true; try { conn.Open(); } catch (Exception erro) { this.mErro = erro.Message; _return = false; } return _return; } // Fecha conexao com o Banco de Dados public void CloseConexao() { conn.Close(); conn.Dispose(); } /// <summary> /// /// </summary> /// <param name="Variavel"></param> /// <returns></returns> public string getWebConfig(string Variavel) { string strValue = ""; System.Configuration.Configuration rootWebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/"); System.Configuration.ConnectionStringSettings connString; if (0 < rootWebConfig.ConnectionStrings.ConnectionStrings.Count) { connString = rootWebConfig.ConnectionStrings.ConnectionStrings[Variavel]; if (null != connString) strValue = connString.ConnectionString; else strValue = "erro"; } return strValue; } } /// <summary> /// Definição de tipos de Conexão /// </summary> public class TipoConexao { public enum Conexao { WebConfig = 1, Classe = 2 }; }
Agora para que tudo fique mais claro, segue exemplo de consulta utilizando nossa Classe Conexao.cs
para SqlServer.
Exemplo de uso de nossa Classe
public List<Curso> ListaTodosCursos() { List<Curso> listaCursos = new List<Curso>(); Curso curso = new Curso(); // Instancia nossa Conexao Conexao conexao = new Conexao(TipoConexao.Conexao.WebConfig); // Se existe erro na conexao move o erro para a classe de acesso if (conexao.ExisteErro()) { setMensagemErro(conexao.mErro); return listaCursos ; } try { SqlDataReader reader; string query = "select * from cursos"; SqlCommand cmd = new SqlCommand(query, conexao.conn); cmd.CommandType = System.Data.CommandType.Text; // Abre nossa Conexao if (conexao.OpenConexao()==false) { setMensagemErro(conexao.mErro); return null; } reader = cmd.ExecuteReader(); while (reader.Read()) { curso = new Curso(); curso.idaluno = Convert.ToInt32(reader["idcurso"]); curso.descricao = (string)reader["descricao"]; listaCursos.Add(curso); } } catch (SqlException e) { setMensagemErro(e.Message.ToString()); } // Fecha nossa Conexao conexao.CloseConexao(); return listaCursos; }
Obs: Não fique preso aos detalhes deste exemplo e a maneira com que a rotina foi montado, este exemplo server simplesmente para mostrar a forma de uso de nossa Classe Conexão.cs, mais adiante iremos postar um exemplo de Classe para acesso aos dados.
Links Relacionados
- Aula 11 - Acessando Banco de Dados SQL SERVER - Criando Consultas em sua aplicação em Asp.Net MVC 4 com C#(CSharp)
- Aula 12 - MS SQL Server - Comandos SQL e Stored Procedures em sua aplicação em Asp.Net MVC 4 com C#(CSharp)
- Aula 15 - Download das ferramentas necessárias para o nosso curso de Asp.Net MVC 4 com C#(CSharp)
- Aula 16 - Criando o banco de dados e configurando o SQLServer para nosso curso de Asp.Net MVC 4 com C#(CSharp)
- Aula 17 - Criando o banco de dados e configurando o SQLServer EXPRESS para nosso curso de Asp.Net MVC 4 com C#(CSharp)
- Comando NULLIF no SQLServer.
- Consulta SQLServer com paginação
- Criando Tabelas Temporarias em MS-SqlServer
- Curso Instalando e configurando o MS SQL Server Express 2014 e Management Studio 2014
- DELETE CASCADE no SqlServer
- Desvendando o Poder da Função STRING_AGG no SQL Server para concatenação de dados
- DROP TABLE IF EXISTS no SQL Server.
- Exemplo de acesso a dados com SQL Server em C#.
- Exemplo de consulta em SqlServer para encontrar uma chave Estrangeira
- Exemplo de Stored Procedure com tratamento de erros e transação. (SqlServer)
- Exemplos de Stored Procedure SQL Server
- Explorando Tipos de Dados Personalizados no SqlServer: Utilidade e Impacto na Performance
- Extensões para DataReader, tratando valores de suas consultas SQL (DataReaderExtensions) C#(CSharp)
- Fazendo a paginação de consultas em MySQL com o comando Limit e Offset
- Formatando datas SqlServer
- Função para gerar tabela com listagem contendo intervalo entre duas datas. (SqlServer)
- MS SQL Server Express 2014 e Management Studio 2014 - Download e Intalação
- Não consigo apagar um Banco de dados (can not drop database) - MS-SQL Server.
- Quando utilizar NOLOCK e READPAST no SqlServer.
- Restaurando um Banco de dados quando este fica travado informando estar restaurando, MS-SQL Server.
- Rodando Script MS-SQL Server diretamente pela linha de comando
- Salvando CSV com cabeçalho no SQL Server Management Studio
- Trabalhando com Cursores em MS-SQL Server.
- Tratando colunas nulas em sua Query SqlServer
- Update/Delete com INNER em MS-SQL Server
- Validando Valores nulos vindos de nosso Banco de Dados C#(CSharp)