Cách DELETE dữ liệu từ database MySQL bằng C#
Hướng dẫn cách sử dụng Prepared Statements trong C# để xóa dữ liệu từ một bảng trong database MySQL một cách an toàn và hiệu quả bằng cách sử dụng nhiều tham số.
Trong bài viết này, bạn sẽ học cách kết nối đến một database MySQL và sử dụng C# với Prepared Statements để thực hiện câu lệnh DELETE, từ đó xóa các bản ghi từ bảng trong cơ sở dữ liệu theo nhiều tham số.
using System;
using MySql.Data.MySqlClient;
namespace MySQLDeleteExample
{
class Program
{
static void Main(string[] args)
{
// Chuỗi kết nối đến database MySQL
string connectionString = "Server=localhost;Database=test_db;User ID=root;Password=password;";
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
try
{
// Mở kết nối đến database
conn.Open();
// Câu lệnh DELETE với Prepared Statement
string deleteQuery = "DELETE FROM students WHERE id = @id AND name = @name";
using (MySqlCommand cmd = new MySqlCommand(deleteQuery, conn))
{
// Thêm các tham số vào câu lệnh DELETE
cmd.Parameters.AddWithValue("@id", 1);
cmd.Parameters.AddWithValue("@name", "John Doe");
// Thực hiện câu lệnh DELETE
int rowsAffected = cmd.ExecuteNonQuery();
// Hiển thị số lượng bản ghi đã bị xóa
Console.WriteLine($"{rowsAffected} bản ghi đã bị xóa.");
}
}
catch (Exception ex)
{
// Xử lý lỗi
Console.WriteLine($"Đã xảy ra lỗi: {ex.Message}");
}
}
}
}
}
Giải thích chi tiết từng dòng code:
using MySql.Data.MySqlClient;
: Import thư viện MySQL Connector/NET để có thể kết nối với MySQL từ C#.string connectionString = "Server=localhost;Database=test_db;User ID=root;Password=password;";
: Khai báo chuỗi kết nối đến database MySQL.using (MySqlConnection conn = new MySqlConnection(connectionString))
: Tạo đối tượng kết nối MySQL.conn.Open();
: Mở kết nối đến database MySQL.string deleteQuery = "DELETE FROM students WHERE id = @id AND name = @name";
: Khai báo câu lệnh DELETE với các tham số.using (MySqlCommand cmd = new MySqlCommand(deleteQuery, conn))
: Tạo một đối tượngMySqlCommand
để thực hiện câu lệnh.cmd.Parameters.AddWithValue("@id", 1);
vàcmd.Parameters.AddWithValue("@name", "John Doe");
: Thêm các tham số cần thiết vào câu lệnh DELETE.int rowsAffected = cmd.ExecuteNonQuery();
: Thực hiện câu lệnh DELETE và nhận số lượng bản ghi đã bị xóa.Console.WriteLine($"{rowsAffected} bản ghi đã bị xóa.");
: Hiển thị số lượng bản ghi đã bị xóa.
Yêu cầu hệ thống:
- C# .NET Framework hoặc .NET Core
- Thư viện: MySQL Connector/NET
Cách cài đặt các thư viện để chạy được đoạn mã C# trên:
- Cài đặt MySQL Connector/NET thông qua NuGet:
Install-Package MySql.Data
Lời khuyên:
- Hãy đảm bảo rằng MySQL server của bạn đang chạy trước khi thực hiện kết nối.
- Kiểm tra kỹ các thông tin kết nối như
Server
,Database
,User ID
, vàPassword
để tránh lỗi kết nối. - Luôn sử dụng Prepared Statements để bảo vệ khỏi các cuộc tấn công SQL injection.