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!
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:
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários