Ao trabalhar com bancos de dados em C#, as operações de Insert, Update e Delete são fundamentais para manipular dados. Neste post, vamos explorar como realizar insert – update e delete de dados em C# usando ADO.NET.

O ADO.NET

ADO.NET é uma tecnologia da Microsoft que permite a manipulação de dados em aplicações .NET. Ele fornece uma coleção de classes para acessar e trabalhar com dados de diferentes fontes, como bancos de dados SQL Server, Oracle, e até mesmo arquivos XML.

Com ADO.NET, os desenvolvedores podem realizar operações como conexão, execução de comandos SQL, e leitura de dados através de objetos como SqlConnection, SqlCommand, SqlDataReader e DataSet. A arquitetura é orientada a conexão e permite que as aplicações interajam de forma eficiente com os dados, oferecendo suporte a transações, conexão em modo desconectado e a capacidade de trabalhar com grandes volumes de dados.

Uma das principais vantagens do ADO.NET é sua flexibilidade e integração com outras tecnologias da plataforma .NET, facilitando a criação de aplicações robustas e escaláveis.

Configurando o ambiente

Primeiro, você precisará de uma conexão com o banco de dados. Certifique-se de ter a string de conexão correta para o seu banco:

string connectionString = "Data Source=servidor;Initial Catalog=banco;User ID=usuario;Password=senha;";

Inserindo dados (Insert)

Para inserir dados, usamos o comando SQL INSERT. Exemplo:

using System;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            string query = "INSERT INTO Clientes (Nome, Email) VALUES (@Nome, @Email)";
            using (SqlCommand command = new SqlCommand(query, connection))
            {
                command.Parameters.AddWithValue("@Nome", "João Silva");
                command.Parameters.AddWithValue("@Email", "joao@email.com");
                
                int result = command.ExecuteNonQuery();
                Console.WriteLine($"{result} registro(s) inserido(s).");
            }
        }
    }
}

Atualizando dados (Update)

Para atualizar dados existentes, usamos o comando SQL UPDATE. Veja como:

string updateQuery = "UPDATE Clientes SET Email = @Email WHERE Nome = @Nome";
using (SqlCommand command = new SqlCommand(updateQuery, connection))
{
    command.Parameters.AddWithValue("@Nome", "João Silva");
    command.Parameters.AddWithValue("@Email", "joaosilva@email.com");
    
    int result = command.ExecuteNonQuery();
    Console.WriteLine($"{result} registro(s) atualizado(s).");
}

Deletando dados (Delete)

Para deletar dados, usamos o comando SQL DELETE. Veja um exemplo:

string deleteQuery = "DELETE FROM Clientes WHERE Nome = @Nome";
using (SqlCommand command = new SqlCommand(deleteQuery, connection))
{
    command.Parameters.AddWithValue("@Nome", "João Silva");
    
    int result = command.ExecuteNonQuery();
    Console.WriteLine($"{result} registro(s) deletado(s).");
}

Explicações:

  • Parâmetros: Sempre use parâmetros nas consultas para evitar SQL Injection.

  • Tratamento de Erros: Considere implementar tratamento de exceções para lidar com possíveis erros de conexão ou execução.

  • Desempenho: Para operações em massa, considere usar transações para melhorar o desempenho e a integridade dos dados.

Outra forma de realizar as manipulações de dados acima usando TRY/CATCH:

//INSERT:

   private void INSERT()
   {

    OleDbConnection conn = new OleDbConnection(aux.strConexao());
    OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = conn;
    conn.Open();

    cmd.CommandText = "INSERT INTO tabela (campo1, campo2, campo3, ...) VALUES (@campo1, @campo2, @campo3, @...)";
	
    cmd.Parameters.AddWithValue("@campo1", this.textBox1.Text);
    cmd.Parameters.AddWithValue("@campo2", this.textBox2.Text);
    cmd.Parameters.AddWithValue("@campo3", this.textBox3.Text);

    try
       {
         int rowsAffected = cmd.ExecuteNonQuery();

         if (rowsAffected == 1)
         {
           MessageBox.Show("INSERT realizado com sucesso!", "INSERT",
           MessageBoxButtons.OK, MessageBoxIcon.Information);            
         }
       }
       catch (Exception ex)
       {
         MessageBox.Show("Não foi possível realizar o INSERT. Motivo: \n\n" + ex +".", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
       }
       finally { conn.Close(); }
   }

 //UPDATE:

   private void UPDATE()
   {
     OleDbConnection conn = new OleDbConnection(aux.strConexao());
     OleDbCommand cmd = new OleDbCommand();
     cmd.Connection = conn;
     conn.Open();

   cmd.CommandText = "UPDATE tabela SET campo1= @campo1, campo2= @campo2, campo3= @campo3 "WHERE <condição>";

     cmd.Parameters.AddWithValue("@campo1", this.textBox1.Text);
     cmd.Parameters.AddWithValue("@campo2", this.textBox2.Text);
     cmd.Parameters.AddWithValue("@campo3", this.textBox3.Text);

     try
        {
          int rowsAffected = cmd.ExecuteNonQuery();

          if (rowsAffected == 1)
          {
            MessageBox.Show("UPDATE realizado com sucesso!", "UPDATE", MessageBoxButtons.OK, MessageBoxIcon.Information);       
          }     
     }
     catch (Exception ex)
     {
       MessageBox.Show("Não foi possível realizar o UPDATE Motivo: \n\n" + ex + ".","Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
      finally { conn.Close(); }
  }
	
   //DELETE:

    private void DELETE()
    {
      OleDbConnection conn = new OleDbConnection(aux.strConexao());
      OleDbCommand cmd = new OleDbCommand();
      cmd.Connection = conn;
      conn.Open();

      cmd.CommandText = "DELETE FROM tabela WHERE <condição>"
	
      cmd.Parameters.AddWithValue("@campo1", this.textBox1.Text);
      cmd.Parameters.AddWithValue("@campo2", this.textBox2.Text);
      cmd.Parameters.AddWithValue("@campo3", this.textBox3.Text);
		
      try
         {
           int rowsAffected = cmd.ExecuteNonQuery();
		
           if (rowsAffected == 1)
           {
             MessageBox.Show("DELETE realizado com sucesso!", "DELETE",MessageBoxButtons.OK, MessageBoxIcon.Information);           
           }
         }
           catch (Exception ex)
           {
             MessageBox.Show("Não foi possível realizar o DELETE. Motivo: \n\n",ex + ".","Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
           }
           finally { conn.Close(); }
   }

Essas operações são a base para manipulação de dados em aplicações C#. Pratique e explore mais recursos da ADO.NET!

Aprenda do zero ou aprimore seus conhecimentos em C#. Domine os conceitos de Orientação a Objetos e crie sistemas complexos integrados com banco de dados.

CONHEÇA O CURSO COMPLETO DE C# COM + DE 100 AULAS PRÁTICAS. Tenha acesso vitalício e certificado de conclusão.

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
 https://youtube.com/criandobits

Tags: | |

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *