Giáo trình mô đun Lập trình windows forms cung cấp cho sinh viên những kiến thức và kỹ năng về: Trình bày các kiểu dữ liệu cơ bản của C#; trình bày các câu lệnh, cấu trúc điều khiển, rẽ nhánh; trình bày các control xây dựng giao diện; xác định, phân tích chức năng yêu cầu để lên kế hoạch xây dựng chương trình ứng dụng; thiết kế giao diện chương trình ứng dụng; vận dụng các kiến thức xây dựng các chức năng của ứng dụng;...
UBND TỈNH BÀ RỊA – VŨNG TÀU TRƯỜNG CAO ĐẲNG KỸ THUẬT CƠNG NGHỆ GIÁO TRÌNH MƠ ĐUN: LẬP TRÌNH WINDOWS FORMS NGHỀ: CƠNG NGHỆ THƠNG TIN TRÌNH ĐỘ: CAO ĐẮNG (Ban hành kèm theo Quyết định số: /QĐCĐKTCN ngày…….tháng….năm của Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ BR – VT) BÀ RỊAVŨNG TÀU, NĂM 2020 TUYÊN BỐ BẢN QUYỀN Nhằm đáp ứng nhu cầu học tập và nghiên cứu cho giảng viên và sinh viên nghề Công nghệ Thông tin trong trường Cao đẳng Kỹ thuật Công nghệ Bà Rịa – Vũng Tàu, chúng thực biên soạn tài liệu Lập trình Windows Forms này Tài liệu được biên soạn thuộc loại giáo trình phục vụ giảng dạy và học tập, lưu hành nội bộ trong Nhà trường nên các nguồn thơng tin có thể được phép dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm LỜI GIỚI THIỆU Giáo trình Lập trình Windows Forms được biên soạn dựa trên khung chương trình đào tạo Cao đẳng nghề Cơng nghệ Thơng tin đã được Trường Cao đẳng Kỹ thuật Cơng nghê Bà Rịa – Vũng Tàu phê duyệt Bên cạnh đó nhằm giúp cho người học các kiến thức và kỹ năng cần thiết để thiết kế và lập trình được các ứng dụng nhỏ trong cuộc sống hằng ngày Tác giả đã nghiên cứu một số tài liệu, trang web liên quan kết hợp với kinh nghiệm làm việc, giảng dạy thực tế để biên soạn giáo trình này. Trong giáo trình này bao gồm các bài sau: Bài 1: Giới thiệu tổng quan Bài 2: Các thành phần cơ bản Bài 3: Sử dụng câu lệnh nhập xuất cơ bản, cấu trúc điều khiển if Bài 4: Sử dụng cấu trúc lựa chọn switch case, for, for each Bài 5: Sử dụng cấu trúc vịng lặp while, do…while Bài 6: Sử dụng câu lệnh break, continue, goto Bài 7: Hàm Bài 8: Thiết kế lớp đối tượng Bài 9: Định nghĩa các thuộc tính, phương thức hành động cho lớp đối tượng Bài 10: Sử dụng Form, MenuStrip Bài 11: Sử dụng Button, Label, TextBox Bài 12: Sử dụng Checkbox, RadioButton, GroupBox Bài 13: Sử dụng ComboBox, ListBox Bài 14: Sử dụng DateTimePicker, MonthCalendar Bài 15: Sử dụng ListView, TreeView Bài 16: Sử dụng PictureBox, ToolTip Bài 17: Sử dụng CheckListBox, NumericUpDown Bài 18: Sử dụng Panel, SplitContainer, TabControl Bài 19: Tạo kết nối, đóng kết nối cơ sở dữ liệu Bài 20: Truy xuất cơ sở dữ liệu bằng Dataset Bài 21: Hiển thị cơ sở dữ liệu bằng DataGridView Bài 22: Truy xuất cơ sở dữ liệu bằng BindingSource Bài 23: Hiển thị cơ sở dữ liệu bằng BindingNavigator Bài 24: Cập nhật cơ sở dữ liệu Với tiêu chí trình bày cơ động, dễ hiểu áp dụng thực tế, kèm theo chi tiết các bước hướng dẫn thực hành cụ thể giúp cho người học dễ tiếp thu các kiến thức cần thiết và hình thành được kỹ năng thực hành và rèn luyện thao tác Trong q trình biên soạn, chắc chắn giáo trình cịn nhiều thiếu sót. Tác giả rất mong nhận được ý kiến đóng góp của q thầy/cơ và các em sinh viên để tiếp tục hồn thiện hơn Xin chân thành cảm ơn q đồng nghiệp, bạn bè đã có những ý kiến đóng góp trong q trình xây dựng giáo trình này Bà Rịa – Vũng Tàu, ngày …… tháng …… năm 2020 Tham gia biên soạn 1. Trần Thị Thanh Hương – Chủ biên MỤC LỤC GIÁO TRÌNH MƠ ĐUN Tên mơ đun: Lập trình Windows forms Mã mơ đun: MĐ 20 Vị trí, tính chất, ý nghĩa và vai trị của mơ đun: Vị trí của mơ đun: Mơ đun được bố trí sau khi học sinh học xong các mơ đun Cơ sở dữ liệu, Lập trình căn bản, Quản trị cơ sở dữ liệu SQL Server Tính chất của mơ đun: Là mơ đun chun mơn nghề. Đây là mơ đun chứa đựng kiến thức nền tảng về ngơn ngữ lập trình ứng dụng và xây dưng các phần mềm ứng dụng quản lý Ý nghĩa và vai trị của mơn học/mơ đun: Mơn học giúp thực hành được các giao diện lập trình ứng dụng nhỏ như: quản lý qn café, quản lý khách sạn, quản lý nhân viên, quản lý sinh viên… Mục tiêu của mơ đun: Về kiến thức: + Trình bày các kiểu dữ liệu cơ bản của C# + Trình bày các câu lệnh, cấu trúc điều khiển, rẽ nhánh + Trình bày các control xây dựng giao diện Về kỹ năng: + Xác định, phân tích chức năng u cầu để lên kế hoạch xây dựng chương trình ứng dụng + Thiết kế giao diện chương trình ứng dụng + Vận dụng các kiến thức xây dựng các chức năng của ứng dụng + Kiểm tra và xử lý có hệ thống các lỗi và sự cố ứng dụng + Đóng gói ứng dụng và triển khai Về năng lực tự chủ và trách nhiệm: + Chủ động trong việc thực tế hóa các ứng dụng phần mềm (Xây dựng các ứng dụng làm tốn, ) + Phát triển các chương trình ứng dụng trong q trình học tập thành các phần mềm quản lý (Nhà hàng, khách sạn, bán hàng, giáo dục…) trong thực tế + Gia cơng các phần mềm theo u cầu khách hàng + Tham gia các đội triển khai phần mềm trong các dự án phần mềm Nội dung của mơ đun: BÀI 1: GIỚI THIỆU TỔNG QUAN Mã bài: 19.01 Giới thiệu: C# hay Csharp là một trong những ngơn ngữ lập trình trong họ DotNet Microsoft lập trình C# người lập trình phải chuẩn bị cài đặt .NET Framework Mục tiêu: Trình bày nhu cầu xây dựng các ứng dụng thực tế Cài đặt, thao tác chương trình ViSual Studio Thao tác hệ thống trợ giúp từ trình đơn Help Rèn luyện tính cẩn thận, sáng tạo, làm việc nhóm Nội dung chính: 1.1. Giới thiệu các ứng dụng thực tế NET Framework là gì ? NET Framework là nền tảng phát triển hồn hảo của Microsoft, cung cấp cho lậ p trình viên các thư viện dùng chung hỗ trợ cho việc phát triển các kiểu ứng dụng khác nhau bao gồm: Ứng dụng ASP.NET Ứng dụng Windows Form Web Services Windows Services Ứng dụng mạng và các ứng dụng điều khiển truy cập từ xa Các ứng dụng thực tế: Quản lý khách sạn Quản lý bệnh viện Quản lý đào tạo Quản lý sinh viên Hình 22.2. Form hiển thị kết nối BindingSource Thực viết code để đồng hóa việc di chuyển DataGridView, BindingSource và bindingNavigator1 Câu hỏi ôn tập và bài tập Thực tạo BindingSoure đến bảng sở liệu QLSINHVIEN, QLBANHANG đã được tạo ở bài 19 BÀI 23: HIỂN THỊ CƠ SỞ DỮ LIỆU BẰNG BINDINGNAVIGATOR Mã bài: 19.23 Giới thiệu: Điều khiển giúp điều hướng dữ liệu trên Form Mục tiêu: Trình bày cơng dụng của BindingNavigator Sử dụng các BindingNavigator để truy xuất dữ liệu Vận dụng BindingNavigator cho đồ án Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính: 23.1. Ý nghĩa BindingNavigator Điều khiển BindingNavigator là giao diện người dùng (UI) điều hướng thao tác cho điều khiển liên kết với dữ liệu. Điều BindingNavigatorkhiển cho phép người dùng điều hướng và thao tác dữ liệu trên Windows Form Các chủ đề trong phần này cung cấp tổng quan về BindingNavigator điều khiển và cung cấp hướng dẫn từng bước cách sử dụng dữ liệu điều hướng điều khiển và di chuyển qua DataSet Vị trí điều khiển trên thanh cơng cụ Toolbox Hình 23.1. Hiển thị điều khiển BindingNavigator 23.2. Cách thiết lập các thành phần Bảng 23.1. Bảng mơ tả phương thức của BindingNavigator Thuộc tính AddNewItem AutoScroll BindingContext BindingSource Items Name Size Visible Width Mô tả Thêm đối tượng ToolStripItem vào điều khiển Thay đổi thuộc tính cuộn Lấy ngữ cảnh cho ToolStrip Lấy nguồn cho dữ liệu Lấy tất cả các phần tử của điều khiển Tên của điều khiển Kích thước của điều khiển Ẩn/hiện điều khiển Độ rộng điều khiển Bảng 23.2. Bảng mơ tả sự kiện của BindingNavigator Thuộc tính AutoSizeChanged BackColorChanged Click CursorChanged DoubleClick ItemAdded ItemClicked ItemRemoved KeyDown KeyPress MouseClick TabIndexChanged Mơ tả Khi thuộc tính Property thay đổi kích thước Khi thuộc tính BackColor thay đổi giá trị Khi đối tượng được nhập chọn Con trỏ chuột được thay đổi Đối tượng được nhấp đơi chuột Khi ToolStripItem được thêm vào trong điều khiển Khi ToolStripItem được nhập chuột trong điều khiển Khi ToolStripItem được bỏ trong điều khiển Khi điều khiển được nhấn một phím Khi một phím được ấn Xử lý đối tượng chuột trên điều khiển Thứ tự Tab của điều khiển bị thay đổi Các thành phần điều khiển của giao diện giữa thành viên BindingNavigator và BindingSource Phương thức điều BindingNavigator BindingSource khiển Move First MoveFirst MoveFirstItem Phương thức điều BindingNavigator BindingSource khiển Move Previous Current Position Count Move Next Move Last Add New Delete MovePrevious Current Count MoveNext MoveLast AddNew RemoveCurrent MovePreviousItem PositionItem CountItem MoveNextItem MoveLastItem AddNewItem DeleteItem 23.3. Truy xuất và hiển thị dữ liệu trên BindingNavigator Nguồn dữ liệu để hiển thị và điều hướng trên BindingNavigator Trong đó Thuộc tính BindingSource bắt buộc để biết nguồn liệu cho BindingNavigator Thực hiện thiết kế Form có hình dạng sau: Hình 23.2. Form hiển thị Binding Source và liên kết BindingNavigator Thực viết code để đồng hóa việc di chuyển DataGridView, BindingSource và bindingNavigator1 Câu hỏi ơn tập và bài tập Thực hiện tạo các BindingSoure và BindingNavigator đến các bảng trong cơ sở dữ liệu QLSINHVIEN, QLBANHANG đã được tạo ở bài 19 BÀI 24: THAO TÁC VỚI CƠ SỞ DỮ LIỆU Mã bài: 19.24 Giới thiệu: Thực hiện các thao tác thêm, xóa, sửa, tìm kiếm từ giao diện form đến cơ sở dữ liệu Mục tiêu: Trình bày và sử dụng các kiểu dữ liệu dùng để cập nhật cơ sở dữ liệu Vận dụng để truy xuất và cập nhật dữ liệu trong đồ án Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính: 24.1. Các kiểu dữ liệu, cập nhật cơ sở dữ liệu Nếu muốn đọc dữ liệu nhanh hơn dùng SqlDataReader nhưng tính đến chi phí hoạt động cần phải thực hiện trong q trình đọc. Mở kết nối, đọc dữ liệu, đóng kết nối, nếu qn đóng hơn nó sẽ đạt hiệu suất SqlDataAdapter o Nếu muốn đọc nhanh hơn và sử dụng lợi ích của Disconnected Arch. của ADO.net o Thao tác này sẽ tự động đóng/mở kết nối o Ngồi ra, cũng cho phép tự động xử lý cập nhật trong DataSet trở lại DataBase. (SqlCommandBuilder) SQLCommand (Điều này cũng sẽ xuất hiện khi dùng SQLDataReader để đọc dữ liệu) và chèn và cập nhật SqlDataAdapter cho phép đổ dữ liệu vào một DataSet và cập nhật thay đổi vào Database. Khơng cần lo lắng về việc mở và đóng SqlConnection bởi vì SqlDataAdapter tự động làm việc đó. Một SqlCommandBuilder tạo ra các câu lệnh insert, update, delete dựa câu select SqlDataAdapter Dùng phương thức Fill() SqlDataAdapter để đổ liệu vào DataSet Gọi phương thức Update() SqlDataAdapter để cập nhật thay đổi vào lại database SqlCommand Khi làm việc với dữ liệu, sẽ thường xuyên cần lọc kết quả dựa trên một vài điều kiện. Thơng thường điều này được thực hiện bằng cách lấy dữ liệu nhập từ người dùng và tạo ra câu truy vấn SQL từ đó. Ví dụ, nhà kinh doanh cần xem tất cả hóa đơn trong một khoảng thời gian xác định. Hoặc một truy vấn khác có thể là lọc các khách hàng theo thành phố Câu truy vấn SQL được gán vào đối tượng SqlCommand chỉ là một chuỗi. Vì thế, nếu muốn tạo một truy vấn lọc, có thể tạo một chuỗi động, nhưng khơng cần phải làm thế. Đây là một ví dụ tồi cho việc tạo một câu truy vấn lọc SqlCommand cmd = new SqlCommand(“select * from Customers where city = ‘” + inputCity + “‘”; Đừng bao tạo câu truy vấn theo cách trên! Biến chứa liệu nhập, inputCity, chỉ đơn giản là lấy dữ liệu từ TextBox trên Windows Forms hoặc Web Page. Bất kì thứ gì trong TextBox sẽ được đặt vào inputCity và được thêm vào câu SQL. Cách làm này có thể bị hacker thay thế chuỗi này bằng những thứ gây hại (SQL Injection). Trong trường hợp xấu nhất, có thể bị lấy tồn quyền điều khiển của máy tính Thay vì tạo một chuỗi động ở ví dụ trên, hãy sử dụng parameter. Bất kì thứ gì được đặt vào một parameter sẽ được coi là một trường dữ liệu, khơng phải là một phần của câu lệnh SQL, điều này giúp ứng dụng an tồn hơn Hình 24.1. Đối tượng SqlCommand trong truy xuất CSDL 24.2. Truy xuất và cập nhật dữ liệu Hình 24.2. Form thiết kế truy xuất, thao tác CSDL Tạo kết nối đến CSDL với đoạn Code sau: Viết hàm dùng chung Load dữ liệu lên lưới để gọi khi: Form dữ liệu vừa được hiển thị (Load) Khi thêm dữ liệu thành cơng Khi xóa dữ liệu thành cơng Khi sửa dữ liệu thành cơng Gọi hàm loaddulieulenluoi trong sự kiên Form_Load(…) Thêm dữ liệu từ Form vào CSDL Sửa dữ liệu từ Form Xóa dữ liệu Tìm kiếm dữ liệu // declare command object with parameter SqlCommand cmd = new SqlCommand(“select * from Customers where city = @City”, conn); SqlParameter param = new SqlParameter(); param.ParameterName = "@City"; param.Value = inputCity; // add new parameter to command object cmd.Parameters.Add(param); // get data stream reader = cmd.ExecuteReader(); Câu hỏi ơn tập và bài tập 1. Tạo CSDL như sau: Hình 24.3. Cấu trúc CSDL 2. Thiết kế và lập trình Form như hình để thực hiện được thao tác trên CSDL Hình 24.4. From Danh mục phịng ban 3.Thực hiện thiết kế và lập trình tương tự với Form Nhân viên Hình 24.5. From Danh mục nhân viên 4. Thực hiện tạo cơ sở dữ liệu QLBANHANG gồm các bảng sau: KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) NHANVIEN (MANV,HOTEN, NGVL, SODT) SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) HOADON (SOHD, NGHD, MAKH, MANV Áp dụng các chức năng đã học. Tạo MenuStrip, TabControl, … để lập trình quản lý được phần mềm bán hàng đơn giản 5. Thực hiện tạo cơ sở dữ liệu QLNHANVIEN gồm các bảng sau: SINHVIEN(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH,MALOP) LOP(MALOP,TENLOP, MAKHOA) KHOA(MAKHOA,TENKHOA) MONHOC(MAMH,TENMH,DONVIHT) GIANGVIEN(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) KETQUA(MASV, MAMH, LANTHI, DIEMTHI) PHANCONG(MALOP,MAMH,MAGV) Áp dụng các chức năng đã học. Tạo MenuStrip, TabControl, … để lập trình quản lý được phần mềm quản lý sinh viên đơn giản TÀI LIỆU THAM KHẢO Trang: https://vietjack.com/csharp Trang: https://www.howkteam.vn/course/khoahoclaptrinhcnangcao Trang: https://www.w3schools.com/cs/ Nguyễn Hồng Hà – Nguyễn Văn Trung, Giáo trình C# và ứng dụng, Khoa Cơng nghệ thơng tin, Đại học Huế Dương Quang Thiện, C# và NET Framework – Lập trình Visual C# thế nào?, Nhà xuất bản tổng hợp TPHCM. Nguyễn Ngọc Bình Phương – Thái Thanh Phong, Các giải pháp lập trình C#, NXB Giao thơng vận tải Phạm Phương Hoa – Vũ Trọng Luật – Phạm Quang Hiển, Lập trình với C# xây dựng ứng dụng, NXB Thanh niên ... ứng nhu cầu học tập và nghiên cứu cho giảng viên và sinh viên nghề ? ?Công? ?nghệ ? ?Thông? ?tin? ?trong trường? ?Cao? ?đẳng? ?Kỹ ? ?thuật? ?Công? ?nghệ? ? Bà Rịa – Vũng Tàu, chúng thực biên soạn tài liệu Lập trình Windows? ?Forms? ?này Tài liệu được biên soạn thuộc loại? ?giáo? ?trình? ?phục vụ giảng dạy và học... LỜI GIỚI THIỆU Giáo? ?trình? ?Lập? ?trình? ?Windows? ?Forms được biên soạn dựa trên khung chương? ?trình? ?đào tạo? ?Cao? ?đẳng nghề Cơng? ?nghệ Thơng? ?tin? ?đã được Trường Cao? ?đẳng? ?Kỹ? ?thuật? ?Cơng nghê Bà Rịa? ?–? ?Vũng Tàu phê duyệt... đóng góp trong q? ?trình? ?xây dựng? ?giáo? ?trình? ?này Bà Rịa? ?–? ?Vũng Tàu, ngày …… tháng …… năm 2020 Tham gia biên soạn 1. Trần Thị Thanh Hương? ?–? ?Chủ biên MỤC LỤC GIÁO TRÌNH MƠ? ?ĐUN Tên mơ? ?đun: ? ?Lập? ?trình? ?Windows? ?forms