Kết nối tới SQL Server, lấy dữ liệu và hiển thị lên bảng (DataGridView)

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).

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:

  1. WinForms App: Giao diện người dùng.

  2. ADO.NET (SqlConnection/SqlCommand): Cầu nối trung gian.

  3. 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:

SQL
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)

  1. Mở Visual Studio -> Chọn Create a new project -> Tìm Windows Forms App (.NET Framework).

  2. 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:

C#
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ầnChức năngVí dụ thực tế
SqlConnectionTạ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.
ConnectionStringChứ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ỉ.
SqlCommandChứa câu lệnh muốn thực hiện (SELECT, INSERT...).Giống nội dung cuộc hội thoại.
SqlDataAdapterCầ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.
DataTableBả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:

  1. Vào Visual Studio -> Menu View -> Server Explorer.

  2. Bấm icon Connect to Database.

  3. Chọn Server Name và Database của bạn, bấm Test Connection.

  4. Nếu thành công, nhìn sang bảng Properties bên phải, copy dòng Connection String.

Nhận xét

  1. 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

Đăng nhận xét