Dưới đây là hướng dẫn từng bước để tạo một ứng dụng C# WinForms đơn giản: Kết nối tới SQL Server, lấy dữ liệu và hiển thị lên bảng (DataGridView).
Mô hình hoạt động
Trước khi viết code, hãy hình dung cách ứng dụng giao tiếp với dữ liệu:
WinForms App: Giao diện người dùng.
ADO.NET (SqlConnection/SqlCommand): Cầu nối trung gian.
SQL Server: Nơi chứa dữ liệu.
Bước 1: Chuẩn bị Cơ sở dữ liệu (SQL Server)
Đầu tiên, bạn cần có một bảng dữ liệu mẫu trong SQL Server. Hãy chạy đoạn script sau trong SQL Management Studio để tạo bảng SinhVien:
CREATE DATABASE DemoWinForm;
GO
USE DemoWinForm;
GO
CREATE TABLE SinhVien (
ID INT PRIMARY KEY IDENTITY,
TenSV NVARCHAR(50),
Lop NVARCHAR(20),
DiemTrungBinh FLOAT
);
-- Thêm vài dòng dữ liệu mẫu
INSERT INTO SinhVien (TenSV, Lop, DiemTrungBinh) VALUES (N'Nguyễn Văn A', 'CNTT1', 8.5);
INSERT INTO SinhVien (TenSV, Lop, DiemTrungBinh) VALUES (N'Trần Thị B', 'KinhTe2', 7.0);
INSERT INTO SinhVien (TenSV, Lop, DiemTrungBinh) VALUES (N'Lê Văn C', 'CNTT1', 9.0);
Bước 2: Thiết kế Giao diện (WinForms)
Mở Visual Studio -> Chọn Create a new project -> Tìm Windows Forms App (.NET Framework).
Trong Toolbox, kéo thả các control sau vào Form:
DataGridView: Đặt tên là
dgvSinhVien(Dùng để hiện dữ liệu).Button: Đặt tên là
btnTaiDuLieu, Text là "Tải Dữ Liệu".
Bước 3: Viết Code Kết nối và Truy vấn
Nhấn đúp chuột vào nút "Tải Dữ Liệu" để mở cửa sổ code (Form1.cs).
Bạn cần thêm thư viện SQL và viết code như sau:
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient; // 1. QUAN TRỌNG: Thêm thư viện này
namespace DemoKetNoiSQL
{
public partial class Form1 : Form
{
// 2. Chuỗi kết nối (Connection String)
// Lưu ý: Thay 'ServerName' bằng tên máy chủ SQL của bạn (thường là .\SQLEXPRESS hoặc tên máy tính)
string strKetNoi = @"Data Source=YOUR_SERVER_NAME;Initial Catalog=DemoWinForm;Integrated Security=True";
// Khai báo đối tượng kết nối
SqlConnection sqlCon = null;
public Form1()
{
InitializeComponent();
}
private void btnTaiDuLieu_Click(object sender, EventArgs e)
{
try
{
if (sqlCon == null)
{
sqlCon = new SqlConnection(strKetNoi);
}
// Mở kết nối nếu đang đóng
if (sqlCon.State == ConnectionState.Closed)
{
sqlCon.Open();
}
// 3. Tạo đối tượng thực thi truy vấn
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "SELECT * FROM SinhVien"; // Câu lệnh SQL
sqlCmd.Connection = sqlCon;
// 4. Dùng SqlDataAdapter để lấy dữ liệu đổ vào DataTable (cách dễ nhất để hiển thị)
SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
DataTable dt = new DataTable(); // Tạo kho chứa dữ liệu ảo
da.Fill(dt); // Đổ dữ liệu từ Server vào DataTable
// 5. Gán dữ liệu lên DataGridView
dgvSinhVien.DataSource = dt;
MessageBox.Show("Tải dữ liệu thành công!", "Thông báo");
}
catch (Exception ex)
{
MessageBox.Show("Lỗi: " + ex.Message);
}
finally
{
// Luôn đóng kết nối sau khi dùng xong để giải phóng tài nguyên
if (sqlCon != null && sqlCon.State == ConnectionState.Open)
{
sqlCon.Close();
}
}
}
}
}
Giải thích các thành phần quan trọng
Để hiểu rõ code trên, bạn có thể tham khảo bảng dưới đây:
| Thành phần | Chức năng | Ví dụ thực tế |
| SqlConnection | Tạo đường ống kết nối giữa phần mềm và Database. | Giống như việc gọi điện thoại kết nối 2 người. |
| ConnectionString | Chứa địa chỉ nhà, tên database, mật khẩu để biết kết nối vào đâu. | Giống danh thiếp ghi địa chỉ. |
| SqlCommand | Chứa câu lệnh muốn thực hiện (SELECT, INSERT...). | Giống nội dung cuộc hội thoại. |
| SqlDataAdapter | Cầu nối lấy dữ liệu về và đổ vào bộ nhớ. | Giống xe tải chở hàng từ kho về cửa hàng. |
| DataTable | Bảng chứa dữ liệu trong bộ nhớ RAM của máy tính. | Giống cái kệ trưng bày hàng hóa. |
Lưu ý khi lấy chuỗi kết nối (Connection String)
Đây là phần hay bị lỗi nhất. Để lấy chuỗi kết nối chính xác:
Vào Visual Studio -> Menu View -> Server Explorer.
Bấm icon Connect to Database.
Chọn Server Name và Database của bạn, bấm Test Connection.
Nếu thành công, nhìn sang bảng Properties bên phải, copy dòng Connection String.

Dưới đây là hướng dẫn từng bước để tạo một ứng dụng C# WinForms đơn giản: Kết nối tới SQL Server, lấy dữ liệu và hiển thị lên bảng (DataGridView).
Trả lờiXóa