tài liệu thực hành môn winform
Trang 1Hướng dẫn thực hành - Lập trình Windows nâng cao
Hướng Dẫn Thực Hành Lập Trình Windows Nâng Cao
Khối: Cao Đẳng và Trung Cấp
Năm 2011
Hướng dẫn:
• Bài tập thực hành dựa trên giáo trình: Microsoft .Net Framework 3.5 Windows Forms Application Development
• Bài tập thực hành được chia theo làm nhiều Module
• Mỗi Module được thiết kế cho thời lượng 3 tiết thực hành tại lớp với sự hướng dẫn của giảng viên
• Tùy theo số tiết phân bổ, mỗi tuần học có thể thực hiện nhiều Module
• Sinh viên nên nghiên cứu và làm trước bài tập trước ở nhà Các thắc mắc sẽ được giảng viên giải quyết ở buổi thực hành
• Sinh viên phải làm tất cả các bài tập trong các Module ở tuần tương ứng Những sinh viên chưa hòan tất phần bài tập tại lớp có trách nhiệm tự làm tiếp tục ở nhà
• Các bài có dấu (*) là các bài tập nâng cao dành cho sinh viên khá giỏi
Module 1
Nội dung kiến thức thực hành:
+Một số thuộc tính của các control
+Các control LinkLabel, MaskedTextbox
+Thiết lập giao diện chương trình thông qua sự kết hợp giữa các control
Bài 1
Mục đích:
Trang 2Hướng dẫn thực hành - Lập trình Windows nâng cao
Sử dụng IDE của Visual Studio.Net với Layout Toolbar và Document Outline Windows trong quá trình thiết kế giao diện Sử dụng các thuộc tính Dock và Anchor
Tạo giao diện như hình bên dưới với các yêu cầu như sau:
Trong quá trình thiết kế, khi người lập trình thay đổi kích thước Form thì Label tiêu đề (Khoa Khoa Học và Kỹ Thuật Máy Tính -Đại Học Công Nghiệp Tp.HCM) vẫn nằm ở giữa màn hình với các mép trái – phải không đổi, đường vẽ và nút lệnh Exit vẫn ở vị trí phải- dưới với các mép không đổi
Khi thực thi chương trình, người sử dụng không thể thay đổi kích thước của Form Vị trí mặc định của Form lúc ban đầu nằmn giữa màn hình Đồng thời Form không hiển thị trên thanh TaskBar
Gợi ý:
Sử dụng thuộc tính Anchor cho các control
Tạo đường kẻ ngang bằng một Label với thuộc tính size hợp lý
Bài 3:
Mục đích:
Sử dụng LinkLabel Control
Sử dụng thuộc tính DialogResult của button control
Gán phím tắt cho Textbox với Label tương ứng
Trang 3Hướng dẫn thực hành - Lập trình Windows nâng cao
Hà Nội, Bến Tre, Thái Bình, Tiền Giang
Thiết lập các thuộc tính để khi co dãn kích thước Form, thì vị trí mép của các đối tượng vẫn không đổi
Trang 4Hướng dẫn thực hành - Lập trình Windows nâng cao
Viết chương trình nhập sách đơn giản với giao diện như hình dưới
Sách gồm 4 thông tin: Số Đăng Ký Cá Biệt, Tên Sách, Nhà Xuất Bản và Nơi Xuất Bản
+Sau khi người sử dụng nhập đủ thông tin sách và bấm nút Lưu, chương trình xóa trắng các textbox, lưu Số ĐKCB vào listbox, đồng thời chuyển focus về textbox Số ĐKCB
+Khi người sử dụng nhập nhà XB (hoặc Nơi XB), chương trình hiển thị danh sách chọn lựa (autocomplete) tại các textbox tương ứng, với giá trị danh sách chọn là các giá trị đã nhập (không trùng nhau) tại các trường tương ứng
+Thiết lập thuộc tính anchor cho các control hợp lý
+Khi người dùng bấm ALT+S: focus chuyển vào textbox số DKCB
Khi người dùng bấm ALT+T: focus chuyển vào textbox tên sách
Khi người dùng bấm ALT+B: focus chuyển vào textbox nhà xuất bản
Khi người dùng bấm ALT+N: focus chuyển vào textbox nơi xuất bản
Trang 5Hướng dẫn thực hành - Lập trình Windows nâng cao
Trang 6Hướng dẫn thực hành - Lập trình Windows nâng cao Module 2
Nội dung kiến thức thực hành:
+Một số thuộc tính của các control và Form
+Một số đối tượng Container mới
+Thiết lập giao diện chương trình thông qua sự kết hợp giữa các control
Trang 7Hướng dẫn thực hành - Lập trình Windows nâng cao
Thiết kế Form sử dụng SplitContainer control để tạo giao diện nhập câu hỏi trắc nghiệm như hình dưới
Khi Form thay đổi kích thước, vị trí và kích thước tương đối giữa các textbox vẫn giữ như lúc đầu tiên
Gợi ý:
Sử dụng 4 SplitContainer với thiết lập về hướng (Orientation) thích hợp
Tuần tự thêm vào từng SplitContainer control
Bài 5:
Mục đích:
Sử dụng thuộc tính DialogResult của Button
Ghép chung sự kiện cho nhiều control
Cách chuyển dữ liệu giữa các Form thông qua kỹ thuật delegate
Trang 8Hướng dẫn thực hành - Lập trình Windows nâng cao
Gợi ý:
Thiết lập thuộc tính DialogResult của các button trên Form2
Form1 sẽ dùng kỹ thuật delegate để lấy dữ liệu
Module 3
Nội dung kiến thức thực hành:
+Sử dụng biến cố (event) cho Mouse và Keyboard
+Sử dụng WebBrowser control
+Sử dụng ToolStrip control
+Tạo một hay nhiều control lúc run-time
+Sử dụng Event cho các control được tạo lúc run-time
Trang 9Hướng dẫn thực hành - Lập trình Windows nâng cao
Bài 1:
Mục đích:
Theo dõi các biến cố của Mouse: Click, DoubleClick, MouseClick, MouseDoubleClick, MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMove, and MouseUp
Sau khi thực hiện xong bài, cho biết điểm khác biệt giữa sự kiện Click và MousecClick
Thêm control động lúc runtime
Cho phép control mới tương tác với người sử dụng thông qua các Event
Mô tả:
Viết chương trình với giao diện như hình dưới Khi lúc khởi động, chương trình gồm một button “Tạo Textbox” và một Groupbox hiển thị chuỗi: Chưa có textbox nào
Trang 10Hướng dẫn thực hành - Lập trình Windows nâng cao
Sau khi người sử dụng bấm nút “Tạo textbox”, chương trình tạo một Tetxbox mới và thêm ở Groupbox, đồng thời button này sẽ bị mờ
Khi người sử dụng nhập nội dung trên textbox, nội dung này sẽ lập tức hiển thị trên tiêu đề của Groupbox
Khi nguời sử dụng double click vào textbox, thì nội dung của textbox sẽ bị xóa hết
Gợi ý:
Tạo một textbox và thêm vào controls của Groupbox
Tạo 2 hàm sự kiện của textbox: Textbox_Changed và Textbox_DoubleClick
Bài 4:
Mục đích:
Sử dụng WebBrowser control và ToolStrip control
Viết chương trình tạo trình duyệt Web đơn giản
Mô tả:
Lab: Creating a WebBrowser
+Exercise 1: Creating a Web Browser (Trang 125)Lab 1: Creating a ToolStrip–Based Web Browser
+Exercise 1: Creating a Web Browser (Trang 143)+Exercise 2: Adding a Search Tool Strip (Trang 144)Lab 2: Adding File Browsing Capability to Your Web Browser (Trang 160)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình
Bài 5:
Mục đích:
Nạp động nhiều đối tượng lúc run-time
Quản lý các đối tượng mới tạo thông qua Collection Controls
Lập trình biến cố trên các đối tượng nạp động lúc run-time
Mô tả:
Trang 11Hướng dẫn thực hành - Lập trình Windows nâng cao
Viết chương trình nạp động các đối tượng như sau
Khi chương trình vừa khởi động, giao diện chương trình chứa textbox dùng để nhập số phần tử n Chương trình chỉ cho phép nhập số vào textbox, không cho phép nhập chữ vào textbox
Khi người sử dụng bấm OK (chương trình phải kiểm tra số nhập có hợp lệ hay không-là số nguyên dương), chương trình sẽ tự động tạo n button động vào như hình dưới, với giá trị text là ngẫu nhiên từ 2 100
+Nút “Chọn số chẵn”: các button chứa số chẵn sẽ đổi màu chữ thành màu đỏ Các button còn lại màu chữ vẫn màu đen
+Nút “Chọn số lẻ”: các button chứa số lẻ sẽ đổi màu chữ thành màu đỏ Các button còn lại màu chữ vẫn màu đen
+Nút xóa tất cả: chương trình sẽ xóa tất cả button vừa tạo và đưa chương trình
về trạng thái ban đầu
+Khi người sử dụng click vào một button chứa số: chương trình sẽ hiện thông báo cho biết số đó phải là số nguyên tố hay không? Đồng thời button này sẽ bị
Trang 12Hướng dẫn thực hành - Lập trình Windows nâng cao
Trang 13Hướng dẫn thực hành - Lập trình Windows nâng cao Module 4
Nội dung kiến thức thực hành:
Viết chương trình hiển thị một mặt trăng xoay như hình bên dưới
Người sử dụng có thể cho phép đảo chiều xoay bằng cách sử dụng hai button Xoay sang trái và xoay sang phải
+Sau khi làm xong phần trên, tinh chỉnh chương trình để điều khiển bằng một button duy nhất như sau Một button dùng để đảo chiều xoay, text hiển thị trên button luôn thể hiện trạng thái cần đổi đến
Gợi ý:
Sử dụng Timer Thiết lập thuộc tính Interval khỏang 40-> 100 (ms)
Sử dụng ImageList chứa 8 Icon (moon01.ico …moon08.ico)
Lần lược hiển thị mỗi lần một hình khi Timer_Tick thực hiện
Trang 14Hướng dẫn thực hành - Lập trình Windows nâng cao
Viết chương trình nhập dữ liệu vào Listview như hình bên dưới
Người sử dụng nhập thông tin: (lastname, firstname, phone) và sử dụng nút Add Name để nhập vào listview
Các contact có biểu tượng (icon) hiển thị như hình
Người sử dụng có thể thay đổi chế độ view của listview bằng menu View
Menu FormatListview hiểu thị hộp thọai chọn màu dùng để thay đổi màu chữ (forecolor) của Listview
Gợi ý:
Sử dụng ListviewItem để thêm một dòng mới cho Listview
Sử dụng ImageList để chứa thư viện icon cho Listview Kết nối Listview với ImageList
Sử dụng ColorDialog control để hiển thị hộp thọai chọn màu, và thay đổi forecolor của Listview
Bài 4:
Mục đích:
Phát triển bài tập 3 với yêu cầu chỉnh sửa thông tin
Mô tả:
Khi người sử dụng double click vào một nhân viên trong listview, chương trình
sẽ hiển thị form mới gồm 3 textbox và hiển thị thông tin nhân viên đang chọn Sau khi người dùng chỉnh sửa thông tin này, và bấm nút lưu (ở form mới), form này sẽ đóng lại và quay về form chính, đồng thời cập nhật lại thông tin trong listview
Bài 5:
Mục đích:
Trang 15Hướng dẫn thực hành - Lập trình Windows nâng cao
Thao tác trên các phần tử của Listview
Mô tả:
Viết chương trình nhập và quản lý danh sách như hình dưới Chương trình quản lý danh sách 2 lớp: Lớp A và lớp B Lớp A là các sinh viên đang đăng ký chờ nhập học Lớp B là danh sách Sv đã được chấp nhận để vào lớp học
Người sử dụng nhập danh sách sinh viên lớp A bằng cách nhập Mã SV và Họ Tên SV trong 2 textbox, sau đó bấm nút OK
Người sử dụng có thể chọn một hay nhiều SV trong 1 danh sách và chuyển qua danh sách kia bằng các nút lệnh < hay > Nút lệnh << và >> dùng để chuyển tòan bộ danh sách
Người sử dụng có thể tìm nhanh những SV nào đó theo tên hoặc mã (tìm không chính xác, ví du: nhập Ca để tìm tất cả SV có mã hoặc tên chứa từ Ca)
Số thứ tự của SV do chương trình đánh tự động, luôn bắt đầu bằng số 1 và liên tiếp 1,2,3…
Mã SV nhập vào danh sách không được trùng với các mã SV đã tồn tại trong cả
2 danh sách lớp A và lớp B
Gợi ý:
Các Listview có thuộc tính MultiSelect =True
Chuyển một tử từ danh sách này sang danh sách khác: gồm 2 thao tác: thêm và xóa
Trang 16Hướng dẫn thực hành - Lập trình Windows nâng cao Module 5
Nội dung kiến thức thực hành:
Sử dụng ImageList lưu trữ 5 icon khác nhau và kết nối với Treeview
Trang 17Hướng dẫn thực hành - Lập trình Windows nâng cao
Viết chương trình xem danh sách sinh viên của Khoa Khoa Học và Kỹ Thuật Máy Tính -Đại Học Công Nghiệp Tp.HCM trường Đại Học Công Nghiệp Tp.HCM như hình Khi chương trình vừa thực thi, Treeview hiển thị danh sách các lớp – các sinh viên như hình
Khi nguời sử dụng chọn cấp Khoa, chương trình hiển thị tòan bộ danh sách sinh viên thuộc Khoa đang chọn vào Listview Khi người sử dụng chọn một lớp bất kỳ thì chương trình hiển thị tòan bộ sinh viên của lớp đang chọn vào listview Khi chọn 1 sinh viên bất kỳ thì chỉ hiển thị sinh viên đó vào Listview
Trang 18Hướng dẫn thực hành - Lập trình Windows nâng cao
Gợi ý:
Kiểm tra vị trí của Node đang chọn trên Treeview
Khi người sử dụng chọn một lớp nào đó trong treeview, chương trình hiển thị textbox dùng để nhập tên các sinh viên thuộc lớp đó Việc nhập được thực hiện bằng nút lệnh OK hoặc bấm phím Enter
Trang 19Hướng dẫn thực hành - Lập trình Windows nâng cao
Khi người sử dụng chọn node sinh viên, chương trình sẽ hiển thị tên sinh viên
đó vào textbox, đồng thời khóa textbox và button, không cho phép họat động
Gợi ý:
Phân biệt cấp của node đang chọn trên TreeView
Module 6
Nội dung kiến thức thực hành:
+Sử dụng TreeView control, WebBrowser control
+Kết hợp giữa TreeView và ListView
Sau khi người sử dụng nhập số phần tử n vào textbox và bấm OK, chương trình
sẽ tạo n tetxbox nạp động và tạo tập số ngẫu nhiên từ 2 200 như hình Nút OK
sẽ bị mờ và không cho họat động Treeview chứa danh sách các số này phân theo 3 nhóm: các số chẵn, các số lẻ và các số nguyên tố với các icon khác nhau (xem hình)
Khi người sử dụng thay đổi một giá trị nào đó của các textbox số trong mục “tập số”, chương trình sẽ lập tức cập nhật danh sách mới vào TreeView
Trang 20Hướng dẫn thực hành - Lập trình Windows nâng cao
Khi người sử dụng bấm nút Clear, chương trình sẽ xóa tất cả textbox động, treeview và trở về trạng thái lúc ban đầu
Gợi ý:
Nạp động n textbox vào một FlowLayout panel
Duyệt các textbox này và xây dựng Treeview
Thêm sự kiện TextChanged cho các textbox này
+Thêm một ToolStrip chứa textbox dùng để tìm người đầu tiên (theo first name hay last name) và chọn trên treeview, đồng thời hiển thị tên người tìm thấy lên 2 textbox
Chú ý là, tên người sử dụng nhập không bỏ dấu tiếng việt
Trang 21Hướng dẫn thực hành - Lập trình Windows nâng cao
Gợi ý:
Nạp danh sách ký tự từ A->Z vào Treeview
Dùng phương thức SubString(vitrí,số ký tự) để lấy ký tự đầu tiên của tên
Chọn node ký tự tương ứng trong Treeview và thêm học+tên vào Node này
Bài 3:
Mục đích:
Nạp đối tượng động Quản lý và sử dụng các đối tượng động vừa nạp này
Mô tả:
Viết chương trình bán vé rạp chiếu phim với các yêu cầu sau:
Hãy tạo một project giúp cho rạp chiếu phim quản lý việc bán vé của một rạp hát Rạp có 3 hàng ghế, mỗi hàng có 5 ghế, các ghế được đánh số từ 1 đến 15
và được phân thành 3 lô (xem hình):
Giá vé lô A 20 ngàn/vé - ghế từ 1-5Giá vé lô B 30 ngàn/vé - ghế từ 6-10Giá vé lô C 40 ngàn/vé- ghế từ 11-15
Trang 22Hướng dẫn thực hành - Lập trình Windows nâng cao
Một người vào có thể mua nhiều vé, và Người bán sẽ chọn các ghế từ các checkbox
+Khi vừa chọn ghế nào, chương trình lập tức cập nhật danh sách các ghế đang chọn và listbox bên dưới
+Khi vừa chọn ghế nào, chương trình lập tức tính và hiển thị tổng số tiền vào label bên dưới
+ Khi người mua muốn hủy bỏ 1 vé nào đó, người bán sẽ chọn số ghế trong
listbox và bấm nút “Xóa ghế đang chọn” Chương trình lập tức sẽ xóa số ghế
đó trong listbox và bỏ checkbox cho ghế đó
+Nút “Xóa tất cả” sẽ xóa tất cả các số ghế trong listbox và đưa trạng thái tất cả
các checkbox về trạng thái không chọn
+Chương trình sử dụng kỹ thuật nạp động các control để sau này dễ dàng cho việc nâng cấp số lượng ghế mỗi hàng
+Chương trình cho phép người sử dụng thay đổi kích thước nhưng vẫn giữ bố cục như ban đầu
Nội dung kiến thức thực hành:
Sử dụng các control: PropertyGrid, StatusStrip, ErrorProvider, HelpProvider…
Bài 1:
Mục đích:
Trang 23Hướng dẫn thực hành - Lập trình Windows nâng cao
Sử dụng các control: PropertyGrid, StatusStrip, ErrorProvider, HelpProvider
Sử dụng các control: PropertyGrid để thiếp lập giá trị cho các control Sử dụng
sự kiện của mouse
Khi người dùng chọn điểm nào trên lisview, chương trình cho phép sửa tọa độ điểm đó trên property grid Ngay khi tọa độ vừa đựợc vẽ, chương trình sẽ vẽ lại đường nối tất cả các điểm này
Trang 24Hướng dẫn thực hành - Lập trình Windows nâng cao
để khởi động ứng dụng
Trang 25Hướng dẫn thực hành - Lập trình Windows nâng cao Module 8
Nội dung kiến thức thực hành:
+Tạo Connection với MS Access và SQL Server
+Sử dụng Exception
+Nắm được một số thuật ngữ trong ADO.NET và phạm vi áp dụng
Bài 1:
Mục đích:
Tạo connection (thời điểm design time) từ cửa sổ Server Explorer
Tạo connection (thời điểm design time) từ Data Source Configuration Wizard
Mô tả:
Exercise 1: Creating Connections in Server Explorer (Trang 190)
Exercise 2: Creating Connections using the Data Source Configuration Wizard (Trang 191)
Mở kết nối và kiểm tra trạng thái của connection
Sử dụng event của connection
Đọc thông tin về server từ connection
Mô tả:
Lab: Practice Opening and Closing Data Connections (Trang 196)
(Lưu ý: chỉ thực hiện kết nối với MS Access, SQL Server)
Trang 26Hướng dẫn thực hành - Lập trình Windows nâng cao
Bước 1: Viết code cho nút lệnh “Tính A/B” như sau:
private void button2_Click(object sender, EventArgs e) {
try
{
int a = Convert.ToInt16(txta.Text);
int b = Convert.ToInt16(txtb.Text);
int chia = a / b;
txtkq.Text = chia.ToString();
}
catch (Exception ex1)
{ MessageBox.Show("Lỗi" + Environment.NewLine + ex1.GetType().ToString()); }
int a = Convert.ToInt16(txta.Text);
int b = Convert.ToInt16(txtb.Text);
MessageBox.Show("Dữ liệu nhập không hợp lệ: phải là số" +
Environment.NewLine + ex1.Message );
Trang 27Hướng dẫn thực hành - Lập trình Windows nâng cao
int a = Convert.ToInt16(txta.Text);
int b = Convert.ToInt16(txtb.Text);
MessageBox.Show("Dữ liệu nhập không hợp lệ: phải là số" +
Environment.NewLine + ex1.Message );
txta.SelectAll();
txta.Focus();
}
catch (OverflowException ex2)
{ MessageBox.Show("Số nhập quá lớn." + Environment.NewLine +
ex2.Message); } catch (Exception ex3)
{ MessageBox.Show("Lỗi" + Environment.NewLine + ex3.GetType().ToString()); }
Bước 4: Nhập giá trị txtB bằng 0 Thực thi chương trình Sinh viên thực hiện bắt
lỗi này và hiện thông báo tiếng Việt để dễ dàng cho người sử dụng
Gợi ý:
Thực hiện với cách làm như các bước 1,2 và 3
Bài 4:
Mục đích:
Xử lý các biệt lệ (Exception) khi kết nối với database
Hiển thị các thông báo lỗi từ SQL server
Lab: Returning the List of Visible SQL Servers (Trang 220)
Sau khi hiển thị kết quả, kiểm tra xem có tên máy cục bộ trong danh sách hay không? Nếu không thì cho biết tại sao?
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình
Trang 28Hướng dẫn thực hành - Lập trình Windows nâng cao Module 9
Nội dung kiến thức thực hành:
+Kết nối với Database SQL Server và MS Access trong môi trường Connected
Kết nối với MS Access và SQL server
Thiết lập command và thực thi câu lệnh SQL trong 2 trường hợp: ExecuteReader và ExecuteNonQuery
Mô tả:
Tạo cơ sở dữ liệu MS Access lưu trữ danh sách sinh viên trong một table SINHVIEN gồm 4 field như hình Nhập danh sách 5 sinh viên trong lớp vào bảng SINHVIEN từ trong MS Access
Viết chương trình hiển thị danh sách sinh viên trên từ database vào Listview với giao diện như hình Listview hiển thị tòan bộ danh sách sinh viên, và thông tin
về giới tính (nam/nữ) của mỗi sinh viên được biểu diễn bằng các biểu tượng tương ứng khác nhau (xem hình)
+Khi người sử dụng chọn một sinh viên nào, chương trình lập tức hiển thị thông tin chi tiết của sinh viên đó vào các textbox (xem hình)
+Thêm vào form một menu Sắp Xếp Tăng Dần chứa 3 menuitem(Sắp xếp theo Tên Sv, Sắp xếp theo Địa chỉ, Sắp xếp theo SDT) Khi người sử dụng chọn kiểu sắp xếp nào, chương trình sẽ cập nhật lại danh sách sinh viên trong Listview theo thứ tự vừa chọn
Trang 29Hướng dẫn thực hành - Lập trình Windows nâng cao
Gợi ý:
Xem hướng dẫn cách truy xuất dữ liệu tại giáo trình – trang 214
Sử dụng lớp OLEDB để truy xuất dữ liệu Ms Access
Bài 3:
Mục đích:
Truy xuất dữ liệu từ MS SQL Server sử dụng Datareader
Sử dụng kết quả trả về để nạp động đối tượng Thao tác trên đối tượng động tương ứng với record dữ liệu
Mô tả:
Tạo cơ sở dữ liệu từ SQL Server quản lý sách bán tại một cửa hàng Nhập danh sách sách gồm 10 cuốn là các giáo trình sinh viên đang và đã học tại Khoa Khoa Học và Kỹ Thuật Máy Tính -Đại Học Công Nghiệp Tp.HCM
Khi chương trình vừa được thực thi, chương trình nạp động các button tương ứng với số đầu sách trong database (mỗi đầu sách tương ứng một button) và hiển thị tên sách
Khi người sử dụng click chọn một đầu sách nào đó, chương trình hiển thị thông tin chi tiết về đầu sách đó ở các textbox bên cạnh (xem hình)
Trang 30Hướng dẫn thực hành - Lập trình Windows nâng cao
Gợi ý:
Xem hướng dẫn cách truy xuất dữ liệu tại giáo trình – trang 224, 249, 250
Sử dụng lớp SQLClients để truy xuất dữ liệu Ms SQL Server
Việc thực hiện nạp động cho từng button nên thực hiện trong một hàm riêng để
dễ dàng cho việc đọc và sửa chương trình
Khi người dùng chọn lớp nào, thì chương trình chỉ hiển thị danh sách sinh viên thuộc lớp đó
Trang 31Hướng dẫn thực hành - Lập trình Windows nâng cao
Khi vừa được nạp, chương trình chạy nền ở Tray (khay hệ thống) của MS Windows Để kích họat giao diện, nguời dùng bấm phải chuột vào biểu tượng và chọn hiển thị giao diện
Sau 15 phút, chương trình sẽ dò thấy trong nguồn dữ liệu có email với ngày và giờ ấn định (sai lệch 1 giờ )thì sẽ gởi email này đến người nhận
Ghi chú: Tất cả các thông tin được Sv nhập trực tiếp vào database (Sv sẽ bổ sung phần thêm thông điệp và danh bạ sau khi hòan tất các module phía sau – phần cập nhật dữ liệu) Cách gởi email sẽ được GV post tại blog của GV
Trang 32Hướng dẫn thực hành - Lập trình Windows nâng cao Module 10
Nội dung kiến thức thực hành:
+Kết nối với Database SQL Server và MS Access trong môi trường Connected
sử dụng DataReader
+Sử dụng SQL động trước khi thực thi câu lệnh SQL
+Sử dụng Command Parameters trước khi thực thi câu lệnh SQL
Lab: Working with Parameters
Exercise 1: Creating and Executing a Parameterized SQL Statement (Trang 257)
Lab: Working with Parameters
Exercise 2: Creating and Executing a Parameterized Stored Procedure (Trang 262)
Lab: Working with Parameters
Exercise 3: Using InputOutput and Output Parameters (Trang 267)
Thiết kế database gồm 1 table SinhVien(ma,hoten,diachi,ngaysinh,SDT).
Khi chương trình vừa thực thi, hiển thị danh sách sinh viên trong Listview chỉ gồm 2 cột: Họ tên và ngày sinh
Trang 33Hướng dẫn thực hành - Lập trình Windows nâng cao
Khi người sử dụng chọn một sinh viên nào đó thì chương trình hiển thị thông tin chi tiết của sinh viên vừa chọn vào các textbox như hình dưới
Cài đặt chương trình sử dụng Parameters Query để thực hiện bài tập này
Gợi ý:
Sinh viên tùy chọn cơ sở dữ liệu là MS Access hoặc SQL Server
Nạp danh sách sinh viên vào listview (nên viết hàm riêng) và được gọi ở Form_Load
Viết hàm hiển thị thông tin chi tiết của sinh viên với 1 tham số là Mã SV Gọi hàm này từ sự kiện Listview_SelectedIndexChaned
Bài 5:
Mục đích:
Truy xuất dữ liệu từ MS SQL Server sử dụng Stored Procedured tham số
Sử dụng kết quả trả về để nạp động đối tượng Thao tác trên đối tượng động tương ứng với record dữ liệu
Cài đặt chương trình sử dụng Stored Procedured để thực hiện bài tập này
Mô tả:
Tạo cơ sở dữ liệu từ SQL Server quản lý sách bán tại một cửa hàng Nhập danh sách sách gồm 10 cuốn là các giáo trình sinh viên đang và đã học tại Khoa Khoa Học và Kỹ Thuật Máy Tính -Đại Học Công Nghiệp Tp.HCM
Khi chương trình vừa được thực thi, chương trình nạp động các button tương ứng với số đầu sách trong database (mỗi đầu sách tương ứng một button) và hiển thị tên sách
Khi người sử dụng click chọn một đầu sách nào đó, chương trình hiển thị thông tin chi tiết về đầu sách đó ở các textbox bên cạnh (xem hình)
Yêu cầu: tạo 2 Stored Procedured: Sp_getBooks (lấy danh mục sách dùng cho việc nạp động) và sp_getBookDetail (lấy về 1 record Book dùng cho việc hiển thị thông tin chi tiết.)
Trang 34Hướng dẫn thực hành - Lập trình Windows nâng cao
Gợi ý:
Việc thực hiện nạp động cho từng button nên thực hiện trong một hàm riêng để
dễ dàng cho việc đọc và sửa chương trình
Trang 35Hướng dẫn thực hành - Lập trình Windows nâng cao Module 11
Nội dung kiến thức thực hành:
+Bước đầu làm quen với với chế độ Disconected
+Khảo sát cấu trúc của Dataset
+Tạo và phân biệt các đối tượng typed DataSet và untyped DataSet
+Khảo sát cấu trúc DataTable
Bài 1:
Mục đích:
Tạo đối tượng typed DataSet sửdụng DataSet Designer
Mô tả:
Lab: Creating DataSet Objects
Exercise 1: Creating a DataSet with the DataSet Designer (Trang 347)
Lab: Creating DataSet Objects
Exercise 2: Creating a Typed DataSet with the Data Source Configuration Wizard (Trang 349)
Lab: Creating DataSet Objects
Exercise 3: Configuring Untyped DataSet Objects (Trang 353)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình
Bài 4:
Mục đích:
Tạo đối tượng DataTable không sử dụng database có sẵn
Khảo sát cấu trúc của DataTable
Mô tả:
Lab: Creating DataTable Objects
Exercise 1: Creating a DataTable (Trang 364)
Gợi ý: Xem hướng dẫn thực hiện trong giáo trình.
Trang 36Hướng dẫn thực hành - Lập trình Windows nâng cao Module 12
Nội dung kiến thức thực hành:
+Sử dụng DataAdapter với môi trường Disconected
+Khảo sát cấu trúc của DataAdapter
+Sử dụng CommandBuilder với DataAdapter khi cập nhật dữ liệu
Bài 1:
Mục đích:
Tạo đối tượng DataAdapter cửa dụng Data Adapter Configuration Wizard
Tạo đối tượng typed DataSet từ DataAdapter này Nạp dữ liệu và hiển thị trên DataGrid Update dữ liệu
Sử dụng các sự kiện RowUpdating, RowUpdated, FillError của DataAdapter
Mô tả:
Lab: Working with DataAdapter Objects
Exercise 1: Creating a DataAdapter with the Data Adapter Configuration Wizard (Trang 375)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình
Bài 2:
Mục đích:
Tạo đối tượng DataAdapter sử dụng code
Tạo đối tượng untyped DataSet – untyped DataTable
Update dữ liệu sử dụng CommandBuilder
Mô tả:
Lab: Working with DataAdapter Objects
Exercise 2: Creating DataAdapters in Code (Trang 379)
Viết chương trình quản lý danh bạ với giao diện như hình bên dưới
Sử dụng MS Access (hoặt SQL Server) lưu trữ danh bạ, gồm 1 Table: chứ 4
field DanhBa(ID, LastName, FirstName, Phone) Khi hiển thị, chương trình chỉ
hiển thị 3 field (xem hình)
Khi người sử dụng nhập thông tin: (lastname, firstname, phone) và sử dụng nút Add Name để nhập, thì chương trình cập nhật danh bạ này vào Database và vào listview Sau đó chương trình xóa trắng các textbox
Khi người sử dụng chọn 1 hàng nào đó trên Listview, chương trình hiển thị lại thông tin chi tiết vào các Textbox
Trang 37Hướng dẫn thực hành - Lập trình Windows nâng cao
Trong chương trình sử dụng DataSet, Parameters Command, Command Builder
để thực hiện các yêu cầu
+Chương trình cho phép nhập 1 danh mục người quen mới, và lưu trữ vào cơ
sở dữ liệu (chưa 1 table: DanhBa(ID, Fname, Lname)
+Khi người sử dụng chọn một tên nào đó, chương trình hiển thị lại họ - tên người đó vào các textbox
Chú ý là, tên người sử dụng nhập không bỏ dấu tiếng việt