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

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

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

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

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

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;";

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

  • Cách 1 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);

 

  • Cách 2 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

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