3.4.1. Chức năng
Dùng đểthực thi các câu lệnh SQL thao tác với CSDL như : Insert, Update, Select, Delete…
Trước khi thực thi câu lệnh SQL bằng đối tượng Command thì bắt buộc phải mở kết nối tới CSDL (gọi phương thức KetNoi()ở trên).
3.4.2. Khai báo
usingSystem.Windows.Forms;
usingSystem.Data;
usingSystem.Data.SqlClient;
namespaceWindowsFormsInCSharp
{
public partial classfrmADONET:Form
{
publicfrmADONET()
{
InitializeComponent();
}
//Khai báo đối tượng Command (sqlCommand)
SqlCommandsqlCom2 =newSqlCommand();
}
}
3.4.3. Các phương thức thường của đối tượng Command
Đối tượng Command có một số phương thức sau:
ExecuteScalar(): Thực hiện câu lệnh mà kết quảtrảvềchỉcó 1 ô (Ví dụcâu lệnh Select Count(*)…). ExecuteReader(): Thực hiện câu lệnh Select và trảvềmột DataReader
ExecuteNonQuery(): Thực hiện câu lệnh OLEDB nhưng không trảvềkết quả (Delete, Update, Insert …).
ExecuteXMLReader(): Tạo một bộ đọc từ file XML. Phương thức này không có trong OleDbCommand, chỉ có trong SqlCommand.
3.4.4. Sửdụng đối tượng Command
Giả sử chúng ta có một cơ sở sữ liệu SQL có tên: CSDL. Cơ sở dữ liệu đó bao gồm một bảng: tbSinhVien(MaSinhVien, TenSinhVien, Lop, NgaySinh, QueQuan) để lưu trữthông tin vềmột sốsinh viên
Giảsửchúng ta có một form có tên frmADONET. Trên form đó có chứa một số điều khiển sau:
DataGridView: dgSinhVien để hiển thịdữliệu trong bảng tbSinhVien.
Các nút button: btMoi, btThem, btSua, btXoa minh họa sửdụng đối tượng Command đểthao tác với CSDL (Insert, Update, Delete…) usingSystem.Windows.Forms; usingSystem.Data; usingSystem.Data.SqlClient; namespaceWindowsFormsInCSharp
{
public partial classfrmADONET:Form
{
publicfrmADONET() {
InitializeComponent(); }
//Khai báo chuỗi kết nối tới CSDL
static stringstrConnect =@"Data Source=.\SQLEXPRESS;Initial Catalog=CSDL;Integrated Security=True";
//Khai báo đối tượng Connection (SqlConnection) và SqlCommand SqlConnectionsqlCon;//sửdụng cách 1
SqlCommandsqlCom;
SqlCommandsqlCom2 =newSqlCommand(); //Phương thức kết nối tới CSDL
voidKetNoi() {
sqlCon =newSqlConnection(strConnect);
if(sqlCon.State ==ConnectionState.Closed) sqlCon.Open();
}
//Ngắt kết nối (thường gọi trong sựkiện FormClosing của Form) voidNgatKetNoi()
{
sqlCon.Close(); }
/// <summary>
///Phương thức thực thi câu lệnh SQL (Insert, Update, Delete) /// </summary>
/// <param name="strSQL">Chuỗi string mô tảCâu lệnh SQL: Insert, Update, Delete</param> voidThucThi(stringstrSQL)
{
//Bước 1: Kết nối tới CSLD (Gọi phương thức KetNoi)
KetNoi();
sqlCom =newSqlCommand(strSQL, sqlCon); sqlCom.ExecuteNonQuery(); //Bước 3: Ngắt kết nối NgatKetNoi(); } //Mới
private voidbtMoi_Click(objectsender,EventArgse) {
foreach(Controlctrin this.splitContainer1.Panel2.Controls) { if((ctrisTextBox) || (ctrisMaskedTextBox)) { ctr.Text =""; } } }
//Thêm bản ghi mới vào bảng tbSinhVien
{
string strThem = "Insert into tbSinhVien values('"+ txtMaSinhVien.Text
+"','"+txtTenSinhVien.Text+"','"+txtLop.Text+"','"+mkNgaySinh.Text+"','"+txtQueQuan.Text+"')";
ThucThi(strThem); }
//Sửa bản ghi
private voidbtSua_Click(objectsender,EventArgse) {
stringstrSua ="update tbSinhVien set TenSinhVien='"+ txtTenSinhVien.Text +"',Lop='"+ txtLop.Text +"',NgaySinh='"+ mkNgaySinh.Text +"',QueQuan='"+ txtQueQuan.Text +"' where MaSinhVien='"+txtMaSinhVien.Text+"' ";
ThucThi(strSua); }
//Xóa bản ghi
private voidbtXoa_Click(objectsender,EventArgse) {
stringstrXoa ="delete from tbSinhVien where MaSinhVien='"+ txtMaSinhVien.Text +"' ";
ThucThi(strXoa); }
}