Cách SELECT dữ liệu từ database MySQL bằng C#
Hướng dẫn cách sử dụng C# để truy vấn dữ liệu từ một bảng trong database MySQL bằng Prepared Statements với nhiều tham số, giúp đảm bảo 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 Prepared Statements trong C# để thực hiện truy vấn SELECT với nhiều tham số, từ đó lấy dữ liệu một cách an toàn từ bảng trong cơ sở dữ liệu.
using System;
using MySql.Data.MySqlClient;
namespace MySQLSelectExample
{
class Program
{
static void Main(string[] args)
{
// Thông tin kết nối đến database MySQL
string connectionString = "server=localhost;user=root;password=password;database=test_db";
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
try
{
// Mở kết nối
conn.Open();
// Câu lệnh SELECT với Prepared Statement
string query = "SELECT * FROM students WHERE age = @age AND city = @city";
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
// Gán giá trị cho các tham số
cmd.Parameters.AddWithValue("@age", 20);
cmd.Parameters.AddWithValue("@city", "Hanoi");
using (MySqlDataReader reader = cmd.ExecuteReader())
{
// Duyệt qua kết quả truy vấn và in ra màn hình
while (reader.Read())
{
Console.WriteLine($"ID: {reader["id"]}, Name: {reader["name"]}, Age: {reader["age"]}, City: {reader["city"]}");
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Lỗi: {ex.Message}");
}
finally
{
// Đóng kết nối
conn.Close();
}
}
}
}
}
Giải thích chi tiết từng dòng code:
using MySql.Data.MySqlClient
: Import thư việnMySql.Data.MySqlClient
để làm việc với MySQL.string connectionString = ...
: Chuỗi kết nối chứa thông tin cần thiết để 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.string query = "SELECT * FROM students WHERE age = @age AND city = @city"
: Câu lệnh SELECT với các tham số@age
và@city
.cmd.Parameters.AddWithValue(...)
: Gán giá trị cho các tham số.using (MySqlDataReader reader = cmd.ExecuteReader())
: Thực thi câu lệnh SELECT và lấy dữ liệu trả về.while (reader.Read())
: Duyệt qua các hàng dữ liệu trong kết quả truy vấn.Console.WriteLine(...)
: In dữ liệu ra màn hình.conn.Close()
: Đóng kết nối.
Yêu cầu hệ thống:
- .NET Framework hoặc .NET Core
- Thư viện MySQL:
MySql.Data
Cách cài đặt các thư viện để chạy được đoạn mã C# trên:
Sử dụng NuGet Package Manager để cài đặt thư viện MySQL:
Install-Package MySql.Data
Lời khuyên:
- Luôn sử dụng Prepared Statements để tránh các cuộc tấn công SQL injection.
- Kiểm tra kỹ chuỗi kết nối để đảm bảo thông tin chính xác và kết nối thành công.