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
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);
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 Catch và sqlCon.Close
Server=Server_name_IP; Database=Tên_DB; Trusted_Connection=True;
Data Source=Server_name_IP; Initial Catalog=Tên_DB; Integrated Security=True;
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
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;";
Đang cập nhật .,,,,,
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);
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
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