Cách INSERT dữ liệu vào database MySQL bằng C#
Hướng dẫn cách sử dụng Prepared Statements trong C# để chèn dữ liệu vào một bảng trong database MySQL một cách an toàn và hiệu quả.
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 INSERT, từ đó thêm các bản ghi vào bảng trong cơ sở dữ liệu với nhiều tham số.
using System;
using MySql.Data.MySqlClient;
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;";
// Tạo một kết nối đến database
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
conn.Open();
// Câu lệnh INSERT với Prepared Statement
string insertQuery = "INSERT INTO students (id, name, age) VALUES (@id, @name, @age)";
using (MySqlCommand cmd = new MySqlCommand(insertQuery, conn))
{
// Gán giá trị cho các tham số
cmd.Parameters.AddWithValue("@id", 1);
cmd.Parameters.AddWithValue("@name", "John Doe");
cmd.Parameters.AddWithValue("@age", 20);
// Thực hiện câu lệnh INSERT
int rowsAffected = cmd.ExecuteNonQuery();
Console.WriteLine($"{rowsAffected} bản ghi đã được chèn.");
}
}
}
}
Giải thích chi tiết từng dòng code:
using MySql.Data.MySqlClient;
: Import thư viện MySql.Data để có thể kết nối và làm việc với MySQL.string connectionString = "..."
: Chuỗi kết nối chứa thông tin để kết nối đến database MySQL.using (MySqlConnection conn = new MySqlConnection(connectionString))
: Tạo một kết nối đến database MySQL.conn.Open()
: Mở kết nối đến database.string insertQuery = "INSERT INTO students (id, name, age) VALUES (@id, @name, @age)"
: Định nghĩa câu lệnh INSERT với các tham số.using (MySqlCommand cmd = new MySqlCommand(insertQuery, conn))
: Tạo mộtMySqlCommand
để thực hiện câu lệnh INSERT.cmd.Parameters.AddWithValue("@id", 1);
: Gán giá trị cho tham số@id
.cmd.Parameters.AddWithValue("@name", "John Doe");
: Gán giá trị cho tham số@name
.cmd.Parameters.AddWithValue("@age", 20);
: Gán giá trị cho tham số@age
.int rowsAffected = cmd.ExecuteNonQuery();
: Thực hiện câu lệnh INSERT và nhận về số lượng bản ghi được chèn.Console.WriteLine($"{rowsAffected} bản ghi đã được chèn.");
: Hiển thị số lượng bản ghi đã được chèn.
Yêu cầu hệ thống:
- C# .NET Framework 4.x hoặc .NET Core
- Thư viện:
MySql.Data
từ 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 từ NuGet Package Manager:
Install-Package MySql.Data
Lời khuyên:
- Đả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.
- Sử dụng Prepared Statements để bảo vệ khỏi các cuộc tấn công SQL injection.