1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình trên Windows: Chương 5.5 - Trần Minh Thái

47 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Slide 1

  • Nội dung

  • Câu lệnh SQL

  • Câu lệnh SQL Insert

  • Câu lệnh SQL Insert

  • Câu lệnh SQL Insert

  • Câu lệnh SQL Insert

  • Câu lệnh SQL Update

  • Câu lệnh SQL Delete

  • Dùng đối tượng Command

  • Dùng đối tượng Command Các bước thực hiện

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

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

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

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

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

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

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

  • Chỉnh sửa dữ liệu Disconnected

  • Chỉnh sửa dữ liệu Disconnected Trạng thái của DataRow

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

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

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

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

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

  • Chỉnh sửa dữ liệu Disconnected Phiên bản dữ liệu trong DataRow

  • Chỉnh sửa dữ liệu Disconnected Phiên bản dữ liệu trong DataRow

  • Dùng đối tượng Command với DataTable/DataSet

  • Dùng đối tượng Command với DataTable/DataSet

  • Dùng đối tượng Command với DataTable/DataSet

  • Dùng đối tượng Command với DataTable/DataSet

  • Dùng đối tượng Command với DataTable/DataSet

  • Dùng đối tượng Command với DataTable/DataSet

  • Dùng đối tượng DataAdapter

  • Dùng đối tượng DataAdapter

  • Dùng đối tượng DataAdapter

  • Dùng đối tượng DataAdapter

  • Dùng đối tượng CommandBuilder

  • Dùng đối tượng CommandBuilder

  • Cấu hình DataAdapter “bằng tay”

  • Cấu hình DataAdapter “bằng tay” Khái niệm

  • Cấu hình DataAdapter “bằng tay” Khái niệm

  • Cấu hình DataAdapter “bằng tay” Tạo Command cho câu lệnh Insert

  • Cấu hình DataAdapter “bằng tay” Tạo Command cho câu lệnh Update

  • Cấu hình DataAdapter “bằng tay” Tạo Command cho câu lệnh Delete

  • Cấu hình DataAdapter “bằng tay” Cập nhật dữ liệu

  • Q&A

Nội dung

Bài giảng Lập trình trên Windows: Chương 5.5 Cập nhật dữ liệu cung cấp cho người học các kiến thức: 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”.

Lập trình Windows Chương 5.5 Cập nhật liệu Nội dung • Câu lệnh SQL • Dùng đối tượng Command • Chỉnh sửa 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” Câu lệnh SQL • Câu lệnh Insert • Câu lệnh Update • Câu lệnh Delete Câu lệnh SQL Insert • Câu lệnh Insert dùng để thêm dịng liệu vào bảng • Thêm dịng hồn chỉnh • Thêm số phần liệu dòng • Thêm liệu lấy từ bảng khác • Thêm 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) Câu lệnh SQL Insert • Thêm số phần liệu dòng Insert into tênBang(cotK1, cotK2, …) Values(giatriK1, giatriK2, …) • Cột khơng liệt kê nhận giá trị NULL  Thêm liệu lấy từ bảng khác Insert into tênBang1(cot1, cot2, …, CotN) Select cot1, Cot2, …, CotN From tênBang2 Where … Câu lệnh SQL Insert • Chú ý: • Từ khố Into câu lệnh Insert bỏ, khơng nên bỏ • Nên liệt kê cột liệu dùng câu lệnh insert liệu Câu lệnh SQL Insert • Copy từ bảng sang 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 liệu vào “tênBangMoi” Câu lệnh SQL Update • Câu lệnh Update dùng để cập nhật (chỉnh sửa) liệu Update tênBang Set cot1=newValue1, …, cotN=newValueN Where cot1 = oldValue1 and … and cotN=oldValueN  Để xóa giá trị liệu bảng, thiết lập giá trị null Update tênBang Set cot1=null, … Where cotA = oldValueA … Câu lệnh SQL Delete • Câu lệnh Delete dùng để xóa số dịng liệu bảng Delete From tênBang Where cot1=giatri1 and cot2=giatri2 and … and cotN=giatriN  Chú ý: • • • • Delete dùng để xóa dịng, khơng xóa cột dịng Delete khơng xóa bảng, xóa liệu Để xóa dịng liệu bảng nên dùng lệnh Truncate Table Từ khóa From câu lệnh delete bỏ, không nên bỏ Dùng đối tượng Command • Các bước thực • Đối tượng Command khơng có tham số • Đối tượng Command có tham số 10 Dùng đối tượng Command với DataTable/DataSet • Cập nhật DataRow vào CSDL int SubmitUpdate(DataRow row, SqlCommand cmdUpdate) {      SqlParameterCollection pc = cmdUpdate.Parameters; pc["@Cot1"].Value = row["Cot1"]; pc["@Cot2"].Value = row["Cot2"]; … pc["@OrginCot1"].Value =  row["Cot1", DataRowVersion.Original]; pc["@OriginCot2"].Value =  row["Cot2", DataRowVersion.Original]; …      return cmdUpdate.ExecuteNonQuery(); } 33 Dùng đối tượng DataAdapter • Đối tượng DataAdapter có nhiệm vụ • Lấy liệu từ data source lưu trữ liệu vào đối tượng Disconnected (DataSet, DataTable) • Cập nhật liệu từ đối tượng Disconnected vào data source 34 Dùng đối tượng DataAdapter DataSet Data source DataAdapter DataTable Fill Fill Update Update DataAdapter DataTable Fill Fill Update Update 35 Dùng đối tượng DataAdapter • Để cập nhật liệu, DataAdapter dùng câu lệnh SQL Insert/Update/Delete lưu đối tượng Command DataAdapter • InsertCommand • UpdateCommand • DeleteCommand 36 Dùng đối tượng DataAdapter • Chúng ta có lựa chọn để tạo đối tượng Command DataAdapter • Dùng đối tượng SqlCommandBuilder để sinh đối tượng Command lúc thực thi (run time) • Cấu hình đối tượng Command “bằng tay” • Dùng Data Adapter Configuration Wizard lúc thiết kế (design time) 37 Dùng đối tượng CommandBuilder • SqlCommandBuilder sinh câu lệnh Insert/Update/Delete dựa câu lệnh select cung cấp • SqlCommandBuilder sinh câu lệnh Insert/Update/Delete điều kiện sau thỏa mãn • Câu lệnh Select truy vấn bảng • Câu lệnh Select có chứa khóa 38 Dùng đối tượng CommandBuilder • Xây dựng đối tượng Command cập nhật liệu string strSQL = "Select cot1, cot2,…" + " From tenBang …"; … SqlDataAdapter da = new SqlDataAdapter(cmd); SqlCommandBuilder cb = new SqlCommandBuilder(da); … … da.Update(tenBang); 39 Cấu hình DataAdapter “bằng tay” • Khái niệm • Tạo Command cho câu lệnh Insert • Tạo Command cho câu lệnh Update • Tạo Command cho câu lệnh Delete • Cập nhật liệu 40 Cấu hình DataAdapter “bằng tay” Khái niệm • Để vượt qua giới hạn SqlCommandBuilder, tự xây dựng đối tượng command cho data adapter • Chú ý: Khi thêm parameter cho đối tượng command DataAdapter, dùng thuộc tính đối tượng Parameter thiết kế cho việc cập nhật liệu: param.SourceColumn, param.SourceVersion 41 Cấu hình DataAdapter “bằng tay” Khái niệm • param.SourceColumn = “tênCột” • Chỉ kết nối paramter (param) với cột (tênCột) DataTable • param.SourceVersion = • DataRowVersion.Current (default) • DataRowVersion.Original • Cho biết Phiên liệu DataRow sử dụng cho parameter 42 Cấu hình DataAdapter “bằng tay” Tạo Command cho câu lệnh Insert private SqlCommand CreateInsertCommand() { string strSQL = "insert into tenBang(cot1, cot2, …)" + " values(@p1,@p2,…)"; SqlCommand cmd = new SqlCommand(strSQL, conn); SqlParameterCollection pc = cmd.Parameters; SqlParameter paramP1 = new SqlParameter("@p1", SqlDbType.Kieu,…); paramP1.SourceColumn = “cot1”; … pc.Add(paramP1); … return cmd; } 43 Cấu hình DataAdapter “bằng tay” Tạo Command cho câu lệnh Update private SqlCommand CreateUpdateCommand() { string strSQL = “update tenBang" + " “ set cot1=@p1, cot2=@p2,…“+ where cot1=@q1 and cot2=q2 …”; SqlCommand cmd = new SqlCommand(strSQL, conn); SqlParameterCollection pc = cmd.Parameters; SqlParameter paramP1 = new SqlParameter("@p1", SqlDbType.Kieu,…); paramP1.SourceColumn = “cot1”; … SqlParameter paramQ1 = new SqlParameter("@q1", SqlDbType.Kieu,…); paramQ1.SourceColumn = “cot1”; paramQ1.SourceVersion = DataRowVersion.Original; … pc.Add(paramP1); pc.Add(paramQ1); … return cmd; } 44 Cấu hình DataAdapter “bằng tay” Tạo Command cho câu lệnh Delete private SqlCommand CreateDeleteCommand() { string strSQL = “delete from tenBang" + " where cot1=@q1 and cot2=q2 …”; SqlCommand cmd = new SqlCommand(strSQL, conn); SqlParameterCollection pc = cmd.Parameters; SqlParameter paramQ1 = new SqlParameter("@q1", SqlDbType.Kieu,…); paramQ1.SourceColumn = “cot1”; paramQ1.SourceVersion = DataRowVersion.Original; … pc.Add(paramQ1); … return cmd; } 45 Cấu hình DataAdapter “bằng tay” Cập nhật liệu void SubmitChanges() { da.InsertCommand = CreateInsertCommand(); da.UpdateCommand = CreateUpdateCommand(); da.DeleteCommand = CreateDeleteCommand(); da.Update(dt); } 46 Q&A 47 47 ... Các giá trị enum DataRowVersion • Current - Lấy giá trị tai • Original - Lấy giá trị gốc • Proposed - Lấy giá trị sau BeginEdit trước EndEdit • Default - Lấy giá trị tham số 27 Dùng đối tượng Command... Chỉnh sửa liệu Disconnected • Trạng thái DataRow • Thêm dịng liệu • Chỉnh sửa dịng liệu • Xóa dịng liệu • Phiên liệu DataRow 19 Chỉnh sửa liệu Disconnected Trạng thái DataRow • Khi thao tác đối tượng... DataRow • Khi thao tác đối tượng DataRow, DataRow 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

Ngày đăng: 08/05/2021, 11:52