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

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 (204.61 KB, 47 trang )

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


vào bảng

Thêm 1 dòng hoà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 hoàn chỉnh
Insert into tênBang
Values(giatri1, giatri2, …, giatriN)
Insert into tênBang(cot1, cot2, …, cotN)
Values(giatri1, giatri2, …, giatriN)
5
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 …
6
Câu lệnh SQL

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


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 …
9
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ỏ
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 cmd = new SqlCommand(strSQL, conn);
int numberOfRows = cmd.ExecuteNonQuery();

Câu lệnh Insert
13
Dùng đối tượng Command
Đối tượng Command không có tham số
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();

Câu lệnh Update
14
Dùng đối tượng Command
Đối tượng Command không có tham số
string strSQL =
"DELETE FROM tênBang" +
" WHERE cot1=giatri1 and … and cotN=giatriN";
SqlCommand cmd = new SqlCommand(strSQL, conn);
int numberOfRows = cmd.ExecuteNonQuery();

Câu lệnh Delete
15
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;
}
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;

}
17
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;
}
18
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();
}
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


DataRowState.Modified

DataRowState.Unchanged
21
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);
22
Chỉnh sửa dữ liệu Disconnected
Chỉnh sửa các dòng dữ liệu

Cách 1:
DataRow row;
int index;

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



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

row.Delete();

Cách 2:
DataRow row;
int index;

row = tenBang.Rows[index];
tenBang.Remove(row);
25
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);

×