Kết nối C# với SQL Server

Khi lập trình C# kết nối với SQL Server các lỗi thường phát sinh, nguyên nhân và cách khắc phục

Kết nối C# với SQL Server

  1. Tại sao cần kết nối C# với SQL server
  2. Cách sử dụng C# để mở kết nối đến SQL Server
  3. Một số dạng chuổi câu kết nối C# đến SQL Server
  4. Các biến đối tượng để kết nối lệnh C# đến SQL để lấy dữ liệu
  5. Khi lập trình C# kết nối với SQL Server các lỗi thường phát sinh

1. Tại sao cần kết nối C# với SQL server

Khi làm phần mềm bạn cần lưu trữ dữ liệu với dung lượng lớn, dạng bảng ghi như Excel, nhưng tốc độ gởi và nhận sẽ nhanh gấp hơn 100 lần so với Excel.

- Câu hỏi 01: khi lập trình phần mềm thì có nên kết nối đến SQL Server hay không ?

- Câu hỏi 02: cách gửi và nhận dữ liệu SQL Server như thế nào ?

- Máy tính cục bộ
- Mạng Lan
- Mạng Internet

- Giải pháp thay thế khi dữ liệu ít không cần kết nối SQL Server đó là XML

2. Cách sử dụng C# để mở kết nối đến SQL Server 

Đối tượng sử dụng để kết nối SQL Server

            SqlConnection sqlCon = new SqlConnection();
            string cns = @"Data Source=hongnhat2\SQLEXPRESS;Initial Catalog=test;User ID=sa;Password=123";
            sqlCon.ConnectionString = cns;
            sqlCon.Open();
            Console.Write(sqlCon.State);
 

Ví dụ kết nối SQL Server đầy đủ có sử dụng try catch

 
    SqlConnection sqlCon = new SqlConnection();
    try
    {
        string cns = @"Data Source=hongnhat2\SQLEXPRESS;Initial Catalog=QLNS;User ID=sa;Password=123";
        sqlCon.ConnectionString = cns ;             
        sqlCon.Open(); // mở kết nối dữ liệu
        Console.Write(  sqlCon.State );
        if( sqlCon.State==ConnectionState.Open)
        {
            //Làm cái gì đó !
        }   
    }
    catch(Exception exx)
    {
       Console.Write(exx.Message);
    }
    finally
    {
        sqlCon.Close();
    }

Câu hỏi: Tại sao lại sử dụng Try CatchsqlCon.Close

Video thực hành kết nối C# với SQL Server

3. Một số dạng chuổi câu kết nối C# đến SQL Server

Câu Connection String để kết nối SQL Server

🔹 Kết nối SQL Server bằng Windows Authentication

Server=Server_name_IP; Database=Tên_DB; Trusted_Connection=True;

Data Source=Server_name_IP; Initial Catalog=Tên_DB; Integrated Security=True;

🔹 Kết nối SQL Server bằng SQL Server Authentication (user/password)

Server=Server_name_IP; Database=Tên_DB; User Id=tên_user; Password=mật_khẩu;

Data Source=Server_name_IP;Initial Catalog=Tên_DB;User ID=tên_user;Password=mật_khẩu

🔹 Nên sử dụng Connection String là Server hay DataSource
Thành phần Gốc từ Dùng nhiều trong...
Server= ODBC Ngắn gọn, dễ nhớ, phổ biến
Data Source= ADO.NET Thường dùng trong C#, VB

Dùng Server= cho ngắn gọn, dễ nhớ, nhưng sau này chuyển qua ADO.NET phải đổi code.
Dùng Data Source= nếu bạn làm việc với ADO.NET và thích dùng tên chuẩn theo tài liệu của .NET.
Theo kinh nghiệm của mình thì bạn nên dùng Data Source.

 

Cú pháp chung:
Data Source=tên_máy_chủ;Initial Catalog=Ten_DB;Integrated Security=true
Data Source=tên_máy_chủ;Initial Catalog=Ten_DB;User Id=User;Password=Pass;

Ví dụ:
  string strCn_Kieu_01 = @"Data Source=.\SQLEXPRESS;Initial Catalog=TenDB;Integrated Security=true";   string strCn_Kieu_02 = @"Data Source=TenCSDL\SQLEXPRESS;Initial Catalog=TenDB;Integrated Security=true";
 string strCn_Kieu_03 = @"Data Source=TenCSDL\SQLEXPRESS;Initial Catalog=TenDB;User Id=sa;Password=123;";

Video thực hành câu connection string kết nối

Đang cập nhật .,,,,,

4. Các biến đối tượng để kết nối lệnh C# đến SQL để lấy dữ liệu

Sử dụng SqlCommand

      

  var strConnectString = @"Data Source=hongnhat2\SQLEXPRESS;
  Initial Catalog=QLNS;
   User ID=sa;Password=123";
SqlConnection con = new SqlConnection(strConnectString);           
con.Open();
SqlCommand command = new SqlCommand();
command.CommandText = "Select * From tbNhanVien";
command.Connection = con;
SqlDataReader readDB_SQL=  command.ExecuteReader();
DataTable dt = new DataTable();
if (readDB_SQL.HasRows)
    dt.Load(readDB_SQL);

 

Sử dụng SqlDataAdapter

 

   string strConnectString = @"Data Source=hongnhat\SQLEXPRESS;Initial Catalog=PhanMemBanHang;Integrated Security=true";
   string strCmdSQL = "select * from tbKhachHang";

   SqlConnection con = new SqlConnection(strConnectString);            
   SqlCommand cmd = new SqlCommand(strCmdSQL, con);
   con.Open();

   SqlDataAdapter adpt = new SqlDataAdapter(cmd);
   DataTable table = new DataTable();
   adpt.Fill(table);

   Dữ liệu được trả về biến table, nếu dùng winform bạn tạo 1 dataGridView1 để xem dữ liệu

   dataGridView1.DataSource = table;

 

Qua 2 ví dụ trên ta thấy có các đối tượng cần quan tâm khi kết nối C# đến SQL Server.

   Các biến đối tượng chính cần sử dụng để kết nối C# đến SQL

SqlConnection con = new SqlConnection("chuổi kết nối");     
Ta có thể kiểm tra tình trạng kết nối trước khi lấy dữ liệu
if (connection.State != ConnectionState.Open)
       return ;
 

 Biến SqlConnection làm nhiều vụ kết nối C# đến SQL Server nó được coi như 1 sợi dây kết nối.

SqlCommand cmd = new SqlCommand(strCmdSQL, con);

Biến SqlCommand nhiệm vụ thông dịch viên, gởi câu lệnh Select, insert, update, delete... từ C# đến SQL Server

   SqlDataAdapter adpt = new SqlDataAdapter(cmd);

Biến SqlDataAdapter nhiệm vụ làm thông dịch viên, chuyển kết quả từ nhiệm vụ của biến SqlCommand thành kết quả C# cần như trả về 1 table

5. Khi lập trình C# kết nối với SQL Server các lỗi thường phát sinh

Lỗi 1: String or binary data would be truncated SQL Server
Nguyên nhân: của lỗi String or binary data would be truncated là do khai báo biến

 Độ rộng của SqlParameter lớn hơn độ rộng của cột SQL Server

Lỗi 2: instance failure' error while connection string is correct
 Nguyên nhân: do câu Connect String bị sai cú pháp

            string strConnectString = @"Data Source=hongnhat\\SQLEXPRESS;Initial Catalog=PhanMemBanHang;Integrated Security=true";

            string strConnectString = @"Data Source=hongnhat\SQLEXPRESS;Initial Catalog=PhanMemBanHang;Integrated Security=true";

Bạn xem 2 câu ConnectString có khác nhau không, câu màu xanh sẽ chạy được, câu màu đỏ sẽ lỗi.

Tìm kiếm:

Khi lập trình C# kết nối với SQL Server các lỗi thường phát sinh, nguyên nhân và cách khắc phục