Giáo trình thực hành Lập trình hướng đối tượng - Bài thực hành số 12.4: Lập trình dùng Databinding để chỉ viết code khởi tạo

Trang 1  
MÔN : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG  
Bài thực hành số 12.4 : Lập trình dùng Databinding ₫ể chỉ viết code khởi tạo  
I. Mục tiêu :  
ƒ
Giúp SV làm quen với việc xây dựng ứng dụng dùng kỹ thuật databinding của VC# ₫ể  
truy xuất database mà không cần viết code truy xuất database, chỉ cần viết code khởi tạo  
nhỏ, nhờ ₫ó hạn chế tối ₫a công sức, thời gian lập trình ₫ồng thời hạn chế tối ₫a những  
rủi ro, lỗi của chương trình.  
II. Nội dung :  
ƒ
Xây dựng chương trình nhỏ cho phép xem thông tin chi tiết về tình hình mua hàng của  
khách hàng dùng kỹ thuật databinding ₫ể chỉ cần viết code khởi tạo nhỏ, chứ không cần  
viết code truy xuất database chi tiết.  
ƒ
Form có giao diện như hình vẽ dưới ₫ây.  
III. Chuẩn ₫ầu ra :  
Sinh viên nắm vững và xây dựng thành thạo các form truy xuất database dùng kỹ thuật  
databinding mà không cần viết code truy xuất database, chỉ cần viết code khởi tạo nhỏ.  
ƒ
IV. Qui trình :  
Bài thực hành này sẽ viết chương trình có form giao diện sử dụng như sau :  
1. Chạy VS .Net, chọn menu File.New.Project ₫ể hiển thị cửa sổ New Project.  
2. Mở rộng mục Visual C# trong TreeView "Project Types", chọn mục Windows, chọn icon  
"Windows Application" trong listbox "Templates" bên phải, thiết lập thư mục chứa Project  
trong listbox "Location", nhập tên Project vào textbox "Name:" (td. SellView), click button OK  
₫ể tạo Project theo các thông số ₫ã khai báo.  
Trang 2  
3. Form ₫ầu tiên của ứng dụng ₫ã hiển thị trong cửa sổ thiết kế, việc thiết kế form là quá trình  
lặp 4 thao tác tạo mới/xóa/hiệu chỉnh thuộc tính/tạo hàm xử lý sự kiện cho từng ₫ối tượng  
cần dùng trong form.  
4. Nếu cửa sổ ToolBox chưa hiển thị chi tiết, chọn menu View.Toolbox ₫ể hiển thị nó (thường  
nằm ở bên trái màn hình). Click chuột vào button  
(Auto Hide) nằm ở góc trên phải cửa sổ  
ToolBox ₫ể chuyển nó về chế ₫ộ hiển thị thường trực. Thay ₫ổi kích thước của form lớn ra  
theo yêu cầu.  
5. Duyệt tìm phần tử Button (trong nhóm Common Controls), chọn nó, dời chuột về vị trí thích  
hợp trong form và vẽ nó với kích thước mong muốn. Hiệu chỉnh thuộc tính Text = "Tới" và  
thuộc tính (Name) = btnToi.  
6. Lặp lại bước 5 ₫ể vẽ Button thứ 2 với thuộc tính Text = "Lùi" và thuộc tính (Name) = btnLui.  
7. Duyệt tìm phần tử Label (trong nhóm Common Controls), chọn nó, dời chuột về vị trí thích  
hợp trong form và vẽ nó với kích thước mong muốn. Hiệu chỉnh thuộc tính Text = "Tên khách  
hàng :".  
8. Lặp lại bước 7 ₫ể vẽ 3 Label còn lại với thuộc tính Text tuần tự là "Địa chỉ liên hệ :", "Số Phone  
: ", "Số Fax :"  
9. Duyệt tìm phần tử ComboBox (trong nhóm Common Controls), chọn nó, dời chuột về bên  
phải Label "Tên khách hàng :" và vẽ nó với kích thước mong muốn. Hiệu chỉnh thuộc tính  
(Name) = cbCust.  
10. Duyệt tìm phần tử TextBox (trong nhóm Common Controls), chọn nó, dời chuột về vị trí bên  
phải Label "Địa chỉ liên hệ :" và vẽ nó với kích thước mong muốn. Hiệu chỉnh thuộc tính  
(Name)= txtContact.  
11. Lặp lại bước 10 ₫ể vẽ 2 TextBox còn lại với thuộc tính (Name) tuần tự là txtPhoneNo,  
txtFaxNo.  
12. Duyệt tìm phần tử GroupBox (trong nhóm Common Controls), chọn nó, dời chuột về vị trí  
ngay dưới Label "Số Fax :" và vẽ nó với kích thước mong muốn. Hiệu chỉnh thuộc tính Text =  
"Danh sách các ₫ơn ₫ặt hàng của khách hàng ₫ang ₫ược chọn :".  
13. Duyệt tìm phần tử DataGridView (trong nhóm Data), chọn nó, dời chuột vào trong GroupBox  
vừa vẽ và vẽ nó với kích thước mong muốn. Hiệu chỉnh thuộc tính (Name)= grdOrders.  
14. Lặp lại bước 12 và 13 ₫ể vẽ GroupBox có thuộc tính Text = "Chi tiết của ₫ơn ₫ặt hàng ₫ang  
₫ược chọn :" và DataGridView bên trong có thuộc tính (Name) = grdOrderDetails.  
15. Tạo hàm xử lý sự kiện cho 2 button btnToi và btnLui rồi viết code cho chúng như sau :  
//hàm xử lý Click chuột trên button "Tới"  
private void btnToi_Click(object sender, EventArgs e) {  
CurrencyManager cm = (CurrencyManager)this.BindingContext [dsView, "Customers"];  
//nếu không phải khách hàng cuối thì tiến tới 1 khách hàng  
if (cm.Position < cm.Count - 1) cm.Position++;  
}
//hàm xử lý Click chuột trên button"Lùi"  
private void btnLui_Click(object sender, EventArgs e) {  
//nếu không phải khách hàng ₫ầu tiên thì lùi 1 khách hàng  
if (this.BindingContext[dsView, "Customers"].Position > 0)  
this.BindingContext[dsView, "Customers"].Position--;  
}
16. Thêm lệnh using sau vào ₫ầu file ₫ặc tả class Form :  
using System.Data.OleDb;  
Trang 3  
17. Thêm các lệnh ₫ịnh nghĩa các thuộc tính dữ liệu cần dùng sau ₫ây vào ở vị trí ₫ầu class ₫ặc tả  
Form :  
//₫ịnh nghĩa các thuộc tính dữ liệu cần dùng  
private String ConnectionString;  
private DataViewManager dsView;  
private DataSet ds;  
private OleDbConnection cn;  
18. Hiệu chỉnh lại hàm constructor của Form ₫ể có nội dung như sau :  
public Form1() {  
InitializeComponent();  
//xây dựng chuỗi ₫ặc tả database cần truy xuất  
ConnectionString  
=
"Provider=Microsoft.Jet.OLEDB.4.0;  
Data  
Source  
=
c:\\NorthWind.mdb;";  
//tạo ₫ối tượng Connection ₫ến database  
cn = new OleDbConnection(ConnectionString);  
//tạo ₫ối tượng DataSet  
ds = new DataSet("CustOrders");  
//tạo ₫ối tượng DataApdater quản lý danh sách các khách hàng  
OleDbDataAdapter da1 = new OleDbDataAdapter  
("SELECT * FROM Customers", cn);  
//ánh xạ Tablename "Table" tới bảng dữ liệu "Customers"  
da1.TableMappings.Add("Table","Customers");  
//chứa bảng Customers vào Dataset  
da1.Fill(ds);  
//tạo ₫ối tượng DataApdater quản lý danh sách các ₫ơn ₫ặt hàng  
OleDbDataAdapter da2 = new OleDbDataAdapter  
("SELECT * FROM Orders", cn);  
//ánh xạ Tablename "Table" tới bảng dữ liệu "Orders"  
da2.TableMappings.Add("Table","Orders");  
// chứa bảng Orders vào Dataset  
da2.Fill(ds);  
//tạo ₫ối tượng DataApdater quản lý danh sách các mặt hàng  
OleDbDataAdapter da3 = new OleDbDataAdapter  
("SELECT * FROM [Order Details]", cn);  
//ánh xạ Tablename "Table" tới bảng dữ liệu "Orders"  
da3.TableMappings.Add("Table","OrderDetails");  
// chứa bảng [Orders Details] vào Dataset  
da3.Fill(ds);  
//thiết lập quan hệ "RelCustOrd" giữa bảng Customers và Orders  
System.Data.DataRelation relCustOrd;  
System.Data.DataColumn colMaster1;  
System.Data.DataColumn colDetail1;  
colMaster1 = ds.Tables["Customers"].Columns["CustomerID"];  
colDetail1 = ds.Tables["Orders"].Columns["CustomerID"];  
relCustOrd = new System.Data.DataRelation  
("RelCustOrd",colMaster1,colDetail1);  
//"add" quan hệ vừa tạo vào dataSet  
ds.Relations.Add(relCustOrd);  
//thiết lập quan hệ "relOrdDet" giữa bảng Orders & [Order Details]  
System.Data.DataRelation relOrdDet;  
System.Data.DataColumn colMaster2;  
System.Data.DataColumn colDetail2;  
Trang 4  
colMaster2 = ds.Tables["Orders"].Columns["OrderID"];  
colDetail2 = ds.Tables["OrderDetails"].Columns["OrderID"];  
relOrdDet = new DataRelation("RelOrdDet",colMaster2,colDetail2);  
//"add" quan hệ vừa tạo vào dataSet  
ds.Relations.Add(relOrdDet);  
//Xác ₫ịnh DataViewManager của DataSet.  
dsView = ds.DefaultViewManager;  
//thiết lập Databinding giữa database với 2 DataGridView  
grdOrders.DataSource = dsView;  
grdOrders.DataMember = "Customers.RelCustOrd";  
grdOrderDetails.DataSource = dsView;  
grdOrderDetails.DataMember = "Customers.RelCustOrd.RelOrdDet";  
//thiết lập Databinding giữa database với ComboBox  
cbCust.DataSource = dsView;  
cbCust.DisplayMember = "Customers.CompanyName";  
cbCust.ValueMember = "Customers.CustomerID";  
//thiết lập Databinding giữa database với 3 Textbox  
txtContact.DataBindings.Add("Text",dsView,"Customers.ContactName");  
txtPhoneNo.DataBindings.Add("Text",dsView,"Customers.Phone");  
txtFaxNo.DataBindings.Add("Text",dsView,"Customers.Fax");  
}
19. Chọn menu Debug.Start Debugging ₫ể dịch và chạy ứng dụng. Lúc ₫ầu, form sẽ hiển thị  
thông tin về khách hàng ₫ầu tiên trong bảng, khi bạn click vào button "Tới" hay "Lùi", thông  
tin khách hàng tương ứng sẽ tự ₫ược hiển thị. Bạn cũng có thể chọn 1 khách hàng tùy ý trong  
ComboBox "Tên khách hàng :" ₫ể chương trình tự hiển thị thông tin chi tiết về khách hàng ₫ó.  
20. Tóm lại Databinding trong VC# giúp ta giảm nhẹ rất nhiều công sức viết chương trình truy  
xuất database : chúng ta chỉ viết ₫oạn code thiết lập databinding giữa các ₫ối tượng giao diện  
với dữ liệu tương ứng trong database chứ chúng ta không cần viết ₫oạn code cập nhật nội  
dung của các phần tử giao diện theo sự biến ₫ộng của database, chúng ta cũng không cần viết  
code cập nhật database theo nội dung mà người dùng thay ₫ổi trên các ₫ối tượng giao diện.  
pdf 4 trang myanh 21920 Free
Bạn đang xem tài liệu "Giáo trình thực hành Lập trình hướng đối tượng - Bài thực hành số 12.4: Lập trình dùng Databinding để chỉ viết code khởi tạo", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_thuc_hanh_lap_trinh_huong_doi_tuong_bai_thuc_hanh.pdf