image

Access unlimited bootcamps and 650+ courses forever

60
%OFF
Article image
Leonardo Delgado
Leonardo Delgado27/12/2021 14:22
Share

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!

Share
Comments (3)

IP

Iracelma Panzo - 07/09/2022 20:13

☺️☺️👏

Guilherme Santana
Guilherme Santana - 27/12/2021 20:32

Eu tenho que agradecer ao leonardo, estava a 3 meses procurando um conteúdo sobre isso. Vejo muita gnt usando o visual studio mas esquece das pessoas que usam o vs code. Obrigado pelo conteudo leonardo, me ajudou muito e tenho certeza que vai ajudar muita gente.


Rafael Rolim
Rafael Rolim - 27/12/2021 14:53

Parabéns.

Ficou muito bom seu Artigo, com certeza ajudou muito gente aqui