hình 1
Sau khi cài đặt thành công C# và Sql Server ta cần xác định thông tin cần thiết để tiến hành kết nối CSDL
hình 2
Thông tin cần quan tâm ở đây là:
- Server name: "EMCHINES-PC\SQLEXPRESS" or ".\SQLEXPRESS"
- Login: "sa" (default)
- Password: ở đây lấy ví dụ là "admin"
- Tên CSDL: " EXECISE" (hình 3)
hình 3
Sau khi có đầy đủ thông tin ta bắt đầu lập trình
Tất cả các câu lệnh cần thiết để thiết lập kết nối đều nằm trong thư viện: "System.Data.SqlClient"
using System.Data.SqlClient;
public class Connection
{
//Khai báo các biến cho kết nối:
public static SqlConnection sqlConnection; //dùng để tạo kết nối
public static SqlCommand sqlCommand; // dùng thực thi câu lệnh sql
public static SqlDataAdapter sqlDataAdapter;
public static SqlDataReader sqlDataReader;
//Khai báo chuỗi kết nối với thông tin đã được xác định trước đó
public static String sqlConn = "Server=
EMCHINES-PC\\SQLEXPRESS
; Database=EXECISE ; uid = sa ; pwd = admin";
//Tạo hàm mở kết nối
public static void OpenConnect()
{
try
{
sqlConnection = new SqlConnection(sqlConn);
sqlConnection.Open(); //Mở kết nối
}
catch (Exception ex) //Bắt ngoại lệ nếu có
{
MessageBox.Show("Lỗi kết nối "+ex.Message);
}
}
//Đóng kết nối
public static void CloseConnect()
{
try
{
sqlConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show("Lỗi đóng kết nối!!");
}
}
//Thực thi câu lệnh sql và trả về một bảng dữ liệu từ Database
public static DataSet FillDataSet(String sqlQuery)
{
DataSet dataSet = new DataSet();
try
{
//OpenConnect();
sqlDataAdapter = new SqlDataAdapter(sqlQuery, sqlConnection);
sqlDataAdapter.Fill(dataSet);
sqlDataAdapter.Dispose();
}
catch
{
MessageBox.Show("Lỗi thực thi!!");
}
finally
{
CloseConnect();
}
return dataSet;
}
//Thực thi câu lệnh sql và trả về một phần dữ liệu của database ( chỉ được đọc 1 lần/ tăng tốc độ)
public static SqlDataReader FillDataReader(String sqlQuery)
{
try
{
//OpenConnect();
sqlCommand=new SqlCommand();
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandText = sqlQuery;
sqlDataReader = sqlCommand.ExecuteReader();
}
catch (Exception ex)
{
MessageBox.Show("Lỗi thực thi!!!");
}
finally
{
//CloseConnect();
sqlCommand.Dispose();
}
return sqlDataReader;
}
//Thực thi câu lệnh sql và không trả về kết quả nào thường dùng cho Update và Delete dữ liệu trong //bảng
public static bool ExecuteNonReturn(String sqlQuery)
{
try
{
//OpenConnect();
sqlCommand = new SqlCommand();
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandText = sqlQuery;
sqlCommand.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
MessageBox.Show("Lỗi thực thi câu lệnh!!");
return false;
}
finally
{
//CloseConnect();
sqlCommand.Dispose();
}
}
//Đóng kết nối DataReader
public static void CloseDataReader()
{
try
{
sqlDataReader.Close();
}
catch (Exception ex)
{
}
}
}
Bây giờ ta sẽ đi vào 1 ví dụ cụ thể:
Ta có một CSDL với 1 bảng có sẳn ( có thể tự thêm dữ liệu vào để xem kết quả chính xác hơn)
//Kết thúc Part 1