ADO.NET
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Cách dùng SqlConnection trong C# [ADO.NET]

Trong bài viết này chúng ta sẽ tìm hiểu về cách dùng SqlConnection trong C# [ADO.NET], đây là một class thuộc namespace System.Data.SqlClient.

Cụ thể chúng ta sẽ đi vào tìm hiểu ADO.NET SqlConnection là gì? cách khởi tạo và sử dụng đối tượng SqlConnection. Ngoài ra, làm thế nào để có thể lưu trữ và truy xuất chuỗi kết nối từ file config.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. SqlConnection trong C# là gì?

ADO.NET SqlConnection class thuộc namespace System.Data.SqlClient và được sử dụng để kết nối mở đến cơ sở dữ liệu SQL Server. Điều quan trong nhất đó chính là kết nối sẽ không đóng hoàn toàn ngay cả khi bạn đã ra khỏi phạm vi hoạt động của nó. Vì vậy, bạn nên đóng chuỗi kết nối một cách rõ ràng bằng cách gọi phương thức Close() của đối tượng kết nối.

*Lưu ý: Các kết nối nên được mở và đóng một cách chính xác nhất, nghĩa là mở khi cần thiết và đóng khi không cần thiết.

Sau đây là Signature của class SqlConnection. Nó được kế thừa từ class DbConnection và thực hiện interface IConeable.

public sealed class SqlConnection : DbConnection, ICloneable
{
}

2. Cách khởi tạo và sử dụng đối tượng SqlConnection

Trong phần này mình sẽ hướng dẫn cách khởi tạo và sử dụng đối tượng SqlConnection trong ADO.NET, cũng như các hàm và phương thức của nó.

Để thực hiện được các thao tác với SqlConnection các bạn cần khởi tạo nó một cách đầy đủ nhất. Vì vậy hãy cùng mình tìm hiểu kỹ hơn nào.

Cách khởi tạo class SqlConnection

ADO.NET SqlConnection class có ba hàm tạo được hiển thị như dưới đây.

public SqlConnection();
public SqlConnection(String connectionString);
public SqlConnection(String connectionString, SqlCredential credential);

Chúng ta sẽ đi cụ thể chi tiết từng chức năng của nó nhé.

  • SqlConnection(): Nó khởi tạo mới một class System.Data.SqlClient.SqlConnection
  • SqlConnection(String connectionString): Hàm khởi tạo này được sử dụng để khởi tạo một phiên bản mới của lớp System.Data.SqlClient.SqlConnection khi được cung cấp một chuỗi có chứa chuỗi kết nối.
  • SqlConnection(String connectionString, SqlCredential credential): Nó được sử dụng để khởi tạo một phiên bản mới của lớp System.Data.SqlClient.SqlConnection cung cấp một chuỗi kết nối. Không sử dụng "Integrated Security = True" mà thay vào đó là đối tượng System.Data.SqlClient.SqlCredential chứa ID và Password của người dùng.

Các phương thức của class SqlConnection

Sau đây là một số phương thức quan trọng của SqlConnection.

  • BeginTransaction: Nó được sử dụng để bắt đầu một transaction với cơ sở dữ liệu và trả về một đối tượng đại diện cho transaction mới.
  • ChangeDatabase(string database): Nó được sử dụng để thay đổi cơ sở dữ liệu hiện tại cho một SqlConnection đang mở.
  • ChangePassword(string connectionString, string newPassword): Thay đổi mật khẩu SQL Server cho người dùng được chỉ định trong chuỗi kết nối thành mật khẩu mới được cung cấp.
  • Close(): Nó được sử dụng để đóng kết nối với cơ sở dữ liệu. Đây là phương pháp tối ưu nhất để đóng bất kỳ kết nối nào đang mở.
  • CreateCommand(): Nó tạo và trả về một đối tượng System.Data.SqlClient.SqlCommand được liên kết với System.Data.SqlClient.SqlConnection.
  • GetSchema(): Nó trả về thong tin lược đồ cho nguồn dữ liệu của System.Data.SqlClient.SqlConnection.
  • Open(): Phương thức này được sử dụng để mở một kết nối cơ sở dữ liệu với cài đặt thuộc tính được chỉ định bởi System.Data.SqlClient.SqlConnection.ConnectionString.

Sử dụng class SqlConnection trong C#

Các bạn có thể tạo ra một instance của class SqlConnection theo ba hàm tạo trong class SqlConnection. Ở đây, mình sẽ hướng dẫn hai cách ưa thích nhất để tạo một instance của class SqlConnection.

Sử dụng hàm tạo lấy chuỗi kết nối làm tham số.

SqlConnection con = new SqlConnection("server=servername; database=databasename;integrated security=true")

Ở đây mình khởi tạo một instance mới con thuộc class SqlConnection với chuỗi kết nối, trong đó:

  • servername: Là tên của server hoặc địa chỉ IP của máy mà bạn muốn kết nối đến, nếu server đó chính là máy của bạn thì có thể thay bằng "server=.".
  • databasename: Là tên của database mà bạn chọn để kết nối trong server đã khai báo trước đó.
  • integrated security = true: Ở đây sử dụng quyền truy cập của window để truy cập vào SQL Server.

Sử dụng hàm tạo không tham số của class SqlConnection.

SqlConnection con = new SqlConnection();
con.ConnectionString = "server=servername;database=databasename;integrated security=true";

Ở đây mình thực hiện qua hai bước. Đầu tiên, tạo một instance mới của class SqlConnection bằng cách sử dụng phương thức khởi tạo không tham số. Sau đó sử dụng thuộc tính ConnectionString của đối tượng kết nối mà bạn cần chỉ định chuỗi kết nối.

*Lưu ý: Tham số ConnectionString là một chuỗi được tạo thành từ các cặp Key/Value có thông tin cần thiết để tạo đối tượng kết nối.

Tạo chuỗi kết nối với quyền truy cập của windows:

string ConnectionString = "server=servername; database=databasename;integrated security=true";

Tạo chuỗi kết nối với quyền truy cập của SQL Server:

string ConnectionString = "server=servername; database=databasename;user id=username;password=userpassword";

3. Lưu trữ và truy xuất chuỗi kết nối từ file config

Ngoài cách khởi tạo chuỗi kết nối trực tiếp, ta có thể kết nối tới SQL Server thông qua file config. Việc sử dụng cách này sẽ rất thuận tiện cho việc thay đổi thông tin về chuỗi kết nối. Hiểu đơn giản, nếu bạn muốn thay đổi tên server thì chỉ cần mở file config và thay đổi là xong, không cần phải chỉnh sửa trong code nữa. Điều đó giúp hạn chế lỗi ngoài ý muốn khi chỉnh sửa.

Việc lưu trữ và truy xuất chuỗi kết nối từ file config được thực hiện theo các bước sau.

Bước 1: Tạo chuỗi kết nối ở file App.config.

Ở góc phải của màn hình chính của project trên visual studio có file App.config trong mục Solution Explorer. Các bạn hãy nhấn đúp chuột để mở file đó lên.

bai3 01 PNG

Bước 2: Thêm đoạn code tạo chuỗi kết nối vào file.

bai2 07 PNG

Bước 3: Thêm thư viện Configuration vào project.

Tại mục Solution Explorer, chuột phải vào References chọn Add Reference

bai2 08 PNG

Một cửa sổ mới hiện ra, kéo xuống và chọn vào System.Configuration sau đó nhấn OK

bai2 09 png

Bước 4: Thêm các thư viện cần thiết.

using System.Configuration;
using System.Data.SqlClient;

Bước 5: Gọi chuỗi kết nối thông qua đối tượng ConfigurationManager.

//sử dụng lớp SqlConnection để tạo chuỗi kết nối
SqlConnection con = new SqlConnection();
//gọi chuỗi kết nối ở file App.config bằng thuộc tính ConnectionString
con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

Trong đó "conn" chính là tên của chuỗi kết nối mà mình đã đặt ở file App.config, các bạn có thể đặt tên này tuy ý sao cho dễ nhớ.

Như vậy là chúng ta đã tạo xong chuỗi kết nối, bây giờ chỉ cần mở chuỗi kết nối bằng phương thức Open() để kết nối tới SQL Server.

4. Ví dụ về SqlConnection trong C#

Trong phần này mình sẽ thực hiện một ví dụ kết nối tới server trên chính máy mình, sau đó tạo mới một table ở database trên server của mình. Ví dụ này giúp các bạn hiểu được cách kết nối và thao tác với CSDL.

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //gọi hàm CreateTable để tạo mới Table
            new Program().CreateTable();
            Console.ReadKey();
        }
        public void CreateTable()
        {
            //sử dụng lớp SqlConnection để tạo chuỗi kết nối
            SqlConnection con = new SqlConnection();
            //gọi chuỗi kết nối ở file App.config bằng thuộc tính ConfigurationManager trong lớp System.Configuration
            con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
            try
            {
                // viết câu lệnh query để thêm mới bảng với các thuộc tính name, email, join_date
                SqlCommand cm = new SqlCommand("create table student(id int not null, name varchar(100), email varchar(50), join_date date)", con);
                // mở chuỗi kết nối
                con.Open();
                // sử dụng phương thức ExecuteNonQuery() để thực thi câu lệnh
                cm.ExecuteNonQuery();
                // thông báo ra màn hình khi tạo thành công
                Console.WriteLine("Đã tạo mới bảng thành công");
            }
            catch (Exception e)
            {
                Console.WriteLine("Có lỗi xảy ra !!!" + e);
            }
            // đóng chuỗi kết nối
            finally
            {
                con.Close();
            }
        }
    }
}

*Lưu ý: database Students các bạn tạo trước ở CSDL trên server đã nhé, phải có database thì mới kết nối tới được.

Kết quả:

bai2 10 png

Như vậy là chúng ta đã tìm hiểu xong về cách dùng SqlConnection trong C# ADO.NET, cũng như các chức năng và ví dụ sử dụng nó. Ở bài tiếp theo mình sẽ hướng dẫn các bạn một class tiếp theo đó chính là SqlConmmand, các bạn chú ý theo dõi nhé!!!

Cùng chuyên mục:

Cách dùng Stack (ngắn xếp) trong C#

Cách dùng Stack (ngắn xếp) trong C#

Mình sẽ giới thiệu về các đặc điểm, thuộc tính và phương thức của Stack…

Cách dùng Queue (hàng đợi) trong C#

Cách dùng Queue (hàng đợi) trong C#

Mình sẽ giới thiệu về các đặc điểm, thuộc tính, phương thức của Queue, cũng…

Cách dùng Hashtable (bảng băm) trong C#

Cách dùng Hashtable (bảng băm) trong C#

Cụ thể sẽ tìm hiểu Hashtable là gì? các đặc điểm của nó, cùng với…

Sự kiện Enter và Leave trong C# Winforms

Sự kiện Enter và Leave trong C# Winforms

Trong bài viết này mình sẽ hướng dẫn các bạn cách ...

Sự kiện KeyPress, KeyDown, KeyUp trong C# Winforms

Sự kiện KeyPress, KeyDown, KeyUp trong C# Winforms

Một câu hỏi được đặt ra là làm cách nào để có thể phát hiện…

Sắp xếp trộn trong C# (Merge Sort)

Sắp xếp trộn trong C# (Merge Sort)

Trong bài viết này mình sẽ hướng dẫn các bạn cách sắp xếp các ..

Sắp xếp nổi bọt trong C# (Bubble Sort)

Sắp xếp nổi bọt trong C# (Bubble Sort)

Trong bài viết này mình sẽ hướng dẫn các bạn cách sắp ...

Cách in ra hình tam giác ký tự * trong C#

Cách in ra hình tam giác ký tự * trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách ...

Cách tính tổng các số chẵn từ 1 đến N trong C#

Cách tính tổng các số chẵn từ 1 đến N trong C#

Trước khi đi vào viết chương trình, chúng ta cùng tìm hiểu qua số chẵn…

Cách tính tổng các số lẻ từ 1 đến N trong C#

Cách tính tổng các số lẻ từ 1 đến N trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tính tổng các lẻ…

Cách đếm số chữ số của một số nguyên trong C#

Cách đếm số chữ số của một số nguyên trong C#

Chúng ta cùng xem qua một số ví dụ để hiểu rõ hơn về chương…

Cách tính chu vi và diện tích hình tam giác trong C#

Cách tính chu vi và diện tích hình tam giác trong C#

Tam giác là một loại hình cơ bản trong hình học, có ba đỉnh là…

Cách tính chu vi và diện tích hình tròn trong C#

Cách tính chu vi và diện tích hình tròn trong C#

Trước khi đi vào viết chương trình tính chu vi và diện ..

Cách tính chu vi và diện tích hình chữ nhật trong C#

Cách tính chu vi và diện tích hình chữ nhật trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn ...

Cách xóa phần tử trùng lặp khỏi mảng trong C#

Cách xóa phần tử trùng lặp khỏi mảng trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách loại bỏ các ..

Cách tìm tất cả các chuỗi con của chuỗi đã cho trong C#

Cách tìm tất cả các chuỗi con của chuỗi đã cho trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tìm ...

Cách xóa các ký tự trùng lặp khỏi chuỗi trong C#

Cách xóa các ký tự trùng lặp khỏi chuỗi trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách xóa các ký tự…

Đếm số lần xuất hiện của ký tự trong chuỗi trong C#

Đếm số lần xuất hiện của ký tự trong chuỗi trong C#

Trong bài viết này minh sẽ hướng dẫn các bạn cách đếm ...

Cách chuyển đổi nhị phân sang thập phân trong C#

Cách chuyển đổi nhị phân sang thập phân trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách chuyển đổi số ...

Cách chuyển đổi thập phân sang nhị phân trong C#

Cách chuyển đổi thập phân sang nhị phân trong C#

Số nhị phân là các con số có cơ số là 2. Các số nhị…

Top