Tải bản đầy đủ (.ppt) (47 trang)

Bài giảng Lập trình cơ sở dữ liệu - Chương 4: Cập nhật dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (167.9 KB, 47 trang )

Chương 4

CẬP NHẬT DỮ LIỆU


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”

2


Câu lệnh SQL


Câu lệnh Insert




Câu lệnh Update



Câu lệnh Delete

3


Câu lệnh SQL
Insert



Câu lệnh Insert dùng để thêm 1 dòng dữ liệu vào
bảng

• Thêm 1 dịng hồn chỉnh
• Thêm 1 số phần dữ liệu của 1 dịng
• Thêm dữ liệu được lấy từ 1 bảng khác



Thêm 1 dịng hồn chỉnh
Insert into tênBang
Values(giatri1, giatri2, …, giatriN)
Insert into tênBang(cot1, cot2, …, cotN)
Values(giatri1, giatri2, …, giatriN)
4



Câu lệnh SQL
Insert



Thêm 1 số phần dữ liệu của 1 dịng
Insert into tênBang(cotK1, cotK2, …)
Values(giatriK1, giatriK2, …)

• Cột khơng liệt kê ra sẽ nhận giá trị NULL

 Thêm dữ liệu được lấy từ 1 bảng khác
Insert into tênBang1(cot1, cot2, …, CotN)
Select cot1, Cot2, …, CotN
From tênBang2
Where …

5


Câu lệnh SQL
Insert



Chú ý:

• Từ khố 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

6


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”
7


Câu lệnh SQL
Update




Câu lệnh Update dùng để cập nhật (chỉnh sửa) dữ liệu

Update tênBang
Set cot1=newValue1, …, cotN=newValueN
Where cot1 = oldValue1 and … and cotN=oldValueN

 Để xóa giá trị của 1 ô dữ liệu trong bảng,
chúng ta thiết lập giá trị đó bằng null
Update tênBang
Set cot1=null, …
Where cotA = oldValueA …
8


Câu lệnh SQL
Delete



Câu lệnh Delete dùng để xóa 1 số dòng dữ liệu trong
bảng

Delete From tênBang
Where cot1=giatri1 and cot2=giatri2 and … and
cotN=giatriN

 Chú ý:
• Delete dùng để xóa cả 1 dịng, chứ khơng xóa 1
cột của dịng

• Delete khơng xóa bảng, chỉ xóa dữ liệu
• Để xóa mọi dịng dữ liệu trong bảng nên dùng
lệnh Truncate Table
• Từ khóa From trong câu lệnh delete có thể bỏ,
nhưng khơng nên bỏ

9


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ố

10


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

11


Dùng đối tượng Command
Đối tượng Command khơng có tham số



Câu lệnh Insert
string strSQL =
"INSERT INTO tênBang(cot1, …) " +
"
VALUES (giatri1, …)";
SqlCommand cmd = new SqlCommand(strSQL, conn);
int numberOfRows = cmd.ExecuteNonQuery();

12


Dùng đối tượng Command
Đối tượng Command khơng có tham số




Câu lệnh Update

string strSQL =
"UPDATE tênBang" +
" SET cot1 = newValue1,…, cotN=giatriN" +
" WHERE cot1=oldValue1 and … and cotN=oldValueN";

SqlCommand cmd = new SqlCommand(strSQL, conn);
int numberOfRows = cmd.ExecuteNonQuery();

13


Dùng đối tượng Command
Đối tượng Command khơng có tham số



Câu lệnh Delete

string strSQL =
"DELETE FROM tênBang" +
"
WHERE cot1=giatri1 and … and cotN=giatriN";
SqlCommand cmd = new SqlCommand(strSQL, conn);
int numberOfRows = cmd.ExecuteNonQuery();

14



Dùng đối tượng Command
Đối tượng Command có tham số



Phương thức tạo câu lệnh Insert

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;
}
15


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

16


Dùng đối tượng Command
Đối tượng Command có tham số



Phương thức tạo câu lệnh Delete

SqlCommand CreateDeleteCommand()
{
string strSQL;
strSQL =

"Delete from tênBang " +
" where @cot1=giatri1 and … and @cotN=giatriN";
SqlCommand cmd = new SqlCommand(strSQL, conn);
SqlParameterCollection pc = cmd.Parameters;
pc.Add("@cot1", SqlDbType.Kieu);

return cmd;
}

17


Dùng đối tượng Command
Đối tượng Command có tham số



Sử dụng các đối tượng command có tham số
int SubmitInsert/Update/Delete()
{
SqlCommand cmd = CreateInsertCommand();
//SqlCommand cmd = CreateUpdateCommand();
//SqlCommand cmd = CreateDeleteCommand();
cmd.Parameters[@tenThamSo] = giatri;

return cmd.ExecuteNonQuery();
}
18



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

19


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
DataRowState.Modified
DataRowState.Unchanged

20


Chỉnh sửa dữ liệu Disconnected
Thêm các dòng dữ liệu mới



Cách 1:

DataRow row;
row = tenBang.NewRow();
row["cot1"] = giatri1;
row["cot2"] = giatri2;

tenBang.Rows.Add(row);

 Cách 2:
object[] rowValues = {giatri1,giatri2,…};
tenBang.LoadDataRow(rowValues, false);


21


Chỉnh sửa dữ liệu Disconnected
Chỉnh sửa các dòng dữ liệu



Cách 1:

 Cách 2:

DataRow row;
int index;

row = tenBang.Rows[index];
row["cot1"] = giatrimoi1;
row["cot2"] = giatrimoi2;

DataRow row;
int index;

row = tenBang.Rows[index];
row.BeginEdit();
row["cot1"] = giatrimoi1;
row["cot2"] = giatrimoi2;

row.EndEdit();
22



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, … };

23


Chỉnh sửa dữ liệu Disconnected
Xóa các dịng dữ liệu



Cách 1:

 Cách 2:

DataRow row;
int index;


row = tenBang.Rows[index];
row.Delete();
DataRow row;
int index;

row = tenBang.Rows[index];
tenBang.Remove(row);

24


Chỉnh sửa dữ liệu Disconnected
Xóa các dịng dữ liệu



Cách 3:
DataRow row;
int index;

tenBang.RemoveAt(index);

25


×