Integrando o SQLServer dentro do seu projeto C#

27/12/2021 14:22

Leonardo Delgado

Leonardo Delgado

Brasil

Um pouco sobre mim

Integrando o SQLServer dentro do seu projeto C#
  • #C#
  • #SQL Server

Bom dia, boa tarde, boa noite seja lá onde você esteja!

Introdução

Durante a realização do Bootcamp Decola Tech que é voltado para programação em C# eu pude perceber que várias vezes era mencionada a utilidade do banco de dados em seu projeto, e a partir das aulas é mostrado como podemos criar um banco de dados em memória (que funciona apenas quando o programa está em execução) e como integrar um banco de dados em seu projeto Asp.NET, mas eu percebi que não tem um tutorial explicando como integrar o banco de dados dentro de um projeto padrão de Console, e vi também que algumas pessoas tinham essa curiosidade, então nesse breve tutorial pretendo mostrar como podemos fazer isso com poucas linhas de código.

Dependências

* Esse tutorial vale tanto para o Visual Studio Code como para o Visual Studio Community.

Para podermos fazer a integração com o banco de dados existem várias formas, a forma que eu irei mostrar é a partir de um dependência chamada SqlClient que infelizmente não vem por padrão dentro do nosso projeto quando o criamos, por isso precisamos instalar essa dependência, para isso pelo cmd ou terminal do editor de código que você esteja usando, você deve digitar o seguinte comando dentro da pasta que contém seu projeto (a pasta que contém o arquivo .csproj):

dotnet add package System.Data.SqlClient

Feito isso perceba que dentro do seu csproj será gerando um campo parecido com esse caso tudo tenha dado certo:

 <ItemGroup>
  <PackageReference Include="System.Data.SqlClient" Version="4.8.3" />
 </ItemGroup>

Programando

Dentro do arquivo que iremos fazer as consultas do banco de dados nós devemos importar o pacote que instalamos para termos acesso a todas as classes que nos ajudaram a fazer isso.

using System.Data.SqlClient;

Após isso dentro do método que será responsável pelas consultas devemos fazer o seguinte:

Vamos criar uma variável do tipo string que armazenará os dados responsáveis pela conexão com o banco de dados, existem vários modelos dessas strings de conexão (você pode velos clicando aqui), a que iremos utilizar é uma bem simples.

Ps: altere os campos com as informações do seu banco de dados.

string stringDeConexao = "Server=NOMEDOSERVIDOR;Database=SEUBANCOAQUI;Trusted_Connection=True;";
* Trusted_Connection indica que você está dizendo que aquela conexão é confiável, uma forma de já autenticar o banco sem precisar da senha e usuário.

Agora que temos a nossa string de conexão aonde devemos usa-la? Nós a usamos como parâmetro na instância de um cara chamado SqlConnection que é responsável pela conexão com o banco de dados.

using (SqlConnection conexao = new SqlConnection(stringDeConexao)) {
  conexao.Open();
// ...
* Nós declaramos a instância dentro de um using para após a sua utilização ela seja descartada;
* O método .Open() inicia a conexão.

Pronto! A conexão já foi iniciada, agora podemos fazer as nossas consultas seja ela um Insert, Select, Delete, etc. para fazermos isso nós vamos instanciar o cara responsável por executar esses comando o SqlCommand:

//ainda dentro do using do SqlConnection
using (SqlCommand comando = new SqlCommand()) {
  comando.Connection = conexao;
  comando.CommandText = "SELECT * FROM Tabela";
  //...
* Depois de instanciar o SqlCommand nós atribuímos um valor a variável interna dele chamada Connection, dentro dela nós passamos a nossa conexão;
* E em CommandText nós passamos a consulta que desejamos.
* O conteúdo abaixo é para a consulta do tipo SELECT, caso você queria fazer uma consulta do tipo INSERT, DELETE ou UPDATE (que alteram valores dentro do banco de dados) adicione a seguinte linha embaixo do CommandText: comando.ExecuteNonQuery();

Agora para nós pegarmos esses dados do select, nós vamos usar uma classe chamada SqlDataReader que como o próprio nome já diz é um leitor de dados sql.

//ainda dentro do using do SqlCommand
SqlDataReader leitorDados = comando.ExecuteReader();
while (leitorDados.Read()){
  string nome = leitorDados["Nome"].ToString();
  Console.WriteLine(nome);
}
leitorDados.Close();
} // chaves do using do SqlCommand
} // chaves do using do SqlConnection
Console.ReadKey(); // para podermos vizualizar no console os resultados
} // chaves do Método
} // chaves da Classe
} // chaves do Namespace
* Ao invés de instanciarmos um novo SqlDataReader nós estamos passando um ExecuteReader do nosso SqlCommand, ou seja, estamos passando o resultado da nossa consulta para o leitorDados que irá mostrá-lo para nós;
* O while continuará sendo executado até não ter mais nenhuma informação para passar;
* Para pegarmos o valor nós passamos no leitorDados o nome do item da Tabela como índice;
* Se nós quisermos executar um novo SqlDataReader, nós devemos fechar o anterior antes de iniciar um novo por isso o leitorDados.Close().

Exemplo de script:

using System;
using System.Data.SqlClient;
public class Program
{
    public static void Main(string[] args)
    {
        string stringDeConexao = "Server=LEONARDOD\\SQLEXPRESS;Database=WebSiteTest;Trusted_Connection=True;";
        using(SqlConnection conexao = new SqlConnection(stringDeConexao)){
            conexao .Open();
            using(SqlCommand comando = new SqlCommand()){
                comando.Connection = conexao ;
                comando.CommandText = "SELECT * FROM Pessoa";

                SqlDataReader leitorDeDados = comando.ExecuteReader();
                while(leitorDeDados.Read()){
                    string nome = (String) leitorDeDados["Nome"];

                    Console.WriteLine(nome);
                }
                leitorDeDados.Close();
            }
        }
        Console.ReadKey();
    }
}

Com esse simples tutorial nós conseguimos ver uma maneira simples de integrar o SQLServer com o nosso projeto C# e ainda realizar consultas, se você estiver interessado em um modelo mais robusto desse código acesse meu Repositório: ... (ainda finalizando o repositório, aguarde :P)

Obrigado quem leu até aqui! E espero que eu tenha conseguido ajudar alguém, qualquer dúvida ou correção do código é só falar nos comentários.

Flw!

Faça parte da nossa comunidade!

Domine as tecnologias utilizadas pelas empresas mais inovadoras do mundo e encare seu novo desafio profissional, evoluindo em comunidade com os melhores experts.

12

Certificado

Artigo relacionado

Comentários

    Nenhum comentário