CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 393

393

Chương 10: Cơ sở dữ liệu

cho phép bạn lấy thông tin về trạng thái của một kết nối và những thiết lập được sử dụng để
mở kết nối. Khi đã hoàn tất một kết nối, bạn nên gọi phương thức

Close

để giải phóng các tài

nguyên hệ thống và kết nối cơ sở dữ liệu nằm dưới.

IDbConnection

được thừa kế từ

System.IDisposable

, nghĩa là mỗi lớp kết nối sẽ hiện thực phương thức

Dispose

. Phương thức

này sẽ tự động gọi

Close

, cho nên lệnh

using

là một cách rất rõ ràng và hiệu quả khi sử dụng

đối tượng kết nối trong mã lệnh.
Để đạt được hiệu năng tối ưu trong việc truy cập dữ liệu thì phải mở kết nối cơ sở dữ liệu
càng chậm càng tốt, và khi đã hoàn tất thì ngắt kết nối càng sớm càng tốt. Việc này bảo đảm
rằng, bạn không truy xuất tới kết nối cơ sở dữ liệu trong một thời gian dài và mã lệnh có cơ
hội cao nhất để giữ lấy kết nối. Điều này đặc biệt quan trọng nếu bạn đang sử dụng
connection-pooling.
Đoạn mã dưới đây trình bày cách sử dụng lớp

SqlConnection

để mở một kết nối đến SQL

Server đang chạy trên máy cục bộ có sử dụng Integrated Windows Security (bảo mật tích hợp
với Windows). Để truy xuất đến một máy từ xa, chỉ cần thay đổi data-source từ

localhost

thành tên của đối tượng cơ sở dữ liệu.

// Tạo đối tượng SqlConnection rỗng.

using (SqlConnection con = new SqlConnection()) {

// Cấu hình chuỗi kết nối của đối tượng SqlConnection.

con.ConnectionString =

"Data Source = localhost;"+ // Đối tượng SQL Server cục bộ

"Database = Northwind;" + // Cơ sở dữ liệu mẫu Northwind

"Integrated Security=SSPI"; // Integrated Windows Security

// Mở kết nối cơ sở dữ liệu.

con.Open();

// Hiển thị thông tin về kết nối.

if (con.State == ConnectionState.Open) {

Console.WriteLine("SqlConnection Information:");

Console.WriteLine(" Connection State = " + con.State);

Console.WriteLine(" Connection String = " + con.ConnectionString);

Console.WriteLine(" Database Source = " + con.DataSource);

Console.WriteLine(" Database = " + con.Database);

Console.WriteLine(" Server Version = " + con.ServerVersion);

Console.WriteLine(" Workstation Id = " + con.WorkstationId);

Console.WriteLine(" Timeout = " + con.ConnectionTimeout);

Console.WriteLine(" Packet Size = " + con.PacketSize);

} else {

Console.WriteLine("SqlConnection failed to open.");

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.