CẬP NHẬT DỮ LIỆU
Chương 4
2
Nội dung
Câu lệnh SQL
Dùng đối tượng Command
Chỉnh sửa dữ liệu Disconnected
Dùng đối tượng Command với DataTable/DataSet
Dùng đối tượng DataAdapter
Dùng đối tượng CommandBuilder
Cấu hình DataAdapter “bằng tay”
3
Câu lệnh SQL
Câu lệnh Insert
Câu lệnh Update
Câu lệnh Delete
4
Câu lệnh SQL
Insert
Câu lệnh Insert dùng để thêm 1 dòng dữ liệu
Insert
Chú ý:
•
Từ khoá Into trong câu lệnh Insert có thể bỏ,
nhưng không nên bỏ
•
Nên liệt kê các cột dữ liệu khi dùng câu lệnh
insert dữ liệu
7
Câu lệnh SQL
Insert
Copy từ 1 bảng sang 1 bảng khác
Select * into tênBangMoi
From tênBang1
Select cotK1, cotK2, … into tênBangMoi
From tênBang1, tênBang2, …
Where …
Group By …
Hoạt động:
•
Tạo bảng “tênBangMoi”
•
Chép dữ liệu vào “tênBangMoi”
8
Câu lệnh SQL
Update
•
Từ khóa From trong câu lệnh delete có thể bỏ,
nhưng không nên bỏ
10
Dùng đối tượng Command
Các bước thực hiện
Đối tượng Command không có tham số
Đối tượng Command có tham số
11
Dùng đối tượng Command
Các bước thực hiện
3 bước sử dụng đối tượng command để cập
nhật dữ liệu
•
Bước 1: Tạo câu SQL
•
Bước 2: Tạo đối tượng Command chứa câu SQL
•
Bước 3: Gọi phương thức ExecuteNonQuery()
của đối tượng Command
12
Dùng đối tượng Command
Đối tượng Command không có tham số
string strSQL =
"INSERT INTO tênBang(cot1, …) " +
" VALUES (giatri1, …)";
SqlCommand CreateInsertCommand()
{
string strSQL;
strSQL = "Insert tênBang(cot1, …) " +
" values(@cot1, …)";
SqlCommand cmd = new SqlCommand(strSQL, conn);
SqlParameterCollection pc = cmd.Parameters;
pc.Add("@cot1", SqlDbType.Kieu);
…
return cmd;
}
16
Dùng đối tượng Command
Đối tượng Command có tham số
Phương thức tạo câu lệnh Update
SqlCommand CreateUpdateCommand()
{
string strSQL;
strSQL =
"Update tênBang " +
" set cot1=@cot1, …, cotN=@cotN " +
" where cot1=@OrigCot1 and … and cotN=@OrigCotN";
SqlCommand cmd = new SqlCommand(strSQL, conn);
SqlParameterCollection pc = cmd.Parameters;
pc.Add("@cot1", SqlDbType.Kieu);
…
pc.Add(@OrigCot1, SqlDbType.Kieu)
…
return cmd;
return cmd.ExecuteNonQuery();
}
19
Chỉnh sửa dữ liệu Disconnected
Trạng thái của DataRow
Thêm các dòng dữ liệu mới
Chỉnh sửa các dòng dữ liệu
Xóa các dòng dữ liệu
Phiên bản dữ liệu trong DataRow
20
Chỉnh sửa dữ liệu Disconnected
Trạng thái của DataRow
Khi chúng ta thao tác trên đối tượng DataRow,
DataRow sẽ tự động ghi nhận lại thao tác đó vào
property trạng thái tenRow.RowState.
RowState thuộc kiểu DataRowState
•
DataRowState.Added
•
DataRowState.Deleted
•
DataRowState.Detached
•
Cách 2:
DataRow row;
int index;
…
row = tenBang.Rows[index];
row.BeginEdit();
row["cot1"] = giatrimoi1;
row["cot2"] = giatrimoi2;
…
row.EndEdit();
23
Chỉnh sửa dữ liệu Disconnected
Chỉnh sửa các dòng dữ liệu
Cách 3:
DataRow row;
int index;
…
row = tenBang.Rows[index];
row.ItemArray = new object[]{giatri1, giatri2, … };
24
Chỉnh sửa dữ liệu Disconnected
Xóa các dòng dữ liệu
Cách 1:
DataRow row;
int index;
…
row = tenBang.Rows[index];