Bài viết này sẽ hướng dẫn các thao tác với cơ sở dữ liệu như: Khởi tạo kết nối, truy vấn dữ liệu, thực thi câu lệnh, thực thi thủ tục trong cơ sở dữ liệu (procedure) bằng ngôn ngữ C#.


Bài viết này sử dụng 2 namespace sau để thao tác với cơ sở dữ liệu:

using System.Data;
using System.Data.SqlClient;code-box


Khởi tạo kết nối

Để có thể thao tác với cơ sở dữ liệu, đầu tiên chúng ta cần tạo kết nối. Chúng ta khai báo biến có kiểu dữ liệu SqlConnection, khởi tạo bằng chuỗi kết nối với các thông số sau đây:
  • Host: Máy chủ chứa cơ sở dữ liệu mà chương trình kết nối đến
  • Database name: Tên cơ sở dữ liệu mà chương trình cần thao tác
  • Username: Tài khoản để xác thực truy cập vào cơ sở dữ liệu (tùy chọn)
  • Password: Mật khẩu để xác thực tài khoản (tùy chọn)

Chuỗi kết nối sẽ có dạng như sau:
Server = '[HOST]'; Initial catalog ='[Database name]'; UID = '[Username]'; PWD = '[Password]'

Nếu bạn sử dụng phương thức Xác thực Windows (Windows Authentication) thì không cần Username và Password trong chuỗi kết nối. Chuỗi kết nối trong trường hợp này có dạng như sau:
Data Source=[Host];Initial Catalog=[Database name];Integrated Security=True

Nhưng mình không khuyến khích các bạn sử dụng Windows Authentication.

Hàm để khởi tạo kết nối, mình viết mẫu như sau:


Truy vấn dữ liệu (Câu lệnh SELECT)

Trong ví dụ truy vấn dữ liệu này, mình sẽ lưu kết quả truy vấn dữ liệu vào trong một biết có kiểu dữ liệu là DataTable (kiểu lưu trữ bảng dữ liệu theo hàng và cột).

Chúng ta cần sử dụng một SqlDataAdapter để đổ dữ liệu vào trong biến lưu trữ kết quả truy vấn.
Hàm để lấy kết quả truy vấn, mình viết mẫu như sau:


Thực thi câu lệnh (Câu lệnh INSERT, UPDATE, DELETE, ...)

Để thực thi câu lệnh thực thi, chúng ta cần sử dụng SqlCommand (CommandType.Text). Sử dụng try ... catch để bắt lỗi, theo dõi xem quá trình thực thi có thành công hay không.

Hàm mình viết sau đây sẽ trả về kết quả OK nếu thực thi thành công, hoặc sẽ trả về mô tả lỗi trong trường hợp thực thi thất bại.


Thực thi thủ tục (Procedure)

Để thực thi thủ tục trong cơ sở dữ liệu, chúng ta cần sử dụng SqlCommand (CommandType.StoredProcedure). Xác định tên của thủ tục và truyền vào danh sách các tham số (parameter) cần thiết cho thủ tục.


Để gọi hàm trên mà mình viết, thì các bạn phải truyền vào tên thủ tục và danh sách các parameter cần thiết (List<SqlParameter>). Để khởi tạo một SQL parameter, có dạng như sau:

SqlParameter [biến] = new SqlParameter();
[biến].ParameterName = "[Tên tham số]";
[biến].SqlDbType = SqlDbType.[Kiểu dữ liệu của tham số];
[biến].Value = [Giá trị của tham số];code-box

Kết luận

Trong bài viết này, mình đã hướng dẫn các bạn cách thao tác với cơ sở dữ liệu. Mình chia sẻ một class mẫu, mình viết như sau:


Chúc các bạn code vui!

Post a Comment

Mới hơn Cũ hơn