Giáo Trình Lập Trình Nâng Cao - Đại Học Thủy Lợi.pdf

508 14 0
Giáo Trình Lập Trình Nâng Cao - Đại Học Thủy Lợi.pdf

Đ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

TRƯỜNG ĐẠI HỌC THỦY LỢI KHOA CÔNG NGHỆ THÔNG TIN TS Lý Anh Tuấn (Chủ biên) ThS Trần Thị Minh Hoàn, ThS Nguyễn Thị Phưotig Dung GIÁO TRÌNH LẬP TRÌNH NÂNG CAO NHÀ XUẤT BẢN BÁCH KHOA HÀ NỘI Biên mục trên[.]

TRƯỜNG ĐẠI HỌC THỦY LỢI KHOA CÔNG NGHỆ THÔNG TIN TS Lý Anh Tuấn (Chủ biên) ThS Trần Thị Minh Hồn, ThS Nguyễn Thị Phưotig Dung GIÁO TRÌNH LẬP TRÌNH NÂNG CAO NHÀ XUẤT BẢN BÁCH KHOA HÀ NỘI Biên mục xuất phẩm Thư viện Quốc gia Việt Nam Lý Anh Tuấn Giáo trình Lập trình nâng cao / Lý Anh Tuấn, Trần Thị Minh Hoàn, Nguyễn Thị Phương Dung - H : Bách khoa Hà Nội, 2021 - 508tr : hình vẽ, bảng ; 27cm ĐTTS ghi: Trường Đại học Thuỷ lợi Khoa Công nghệ thông tin - Thư mục: tr 506 Tin học Lập trình Giáo trình 005.10711 - dc23 BKK0043p-CIP Giáo trình: LẬP TRÌNH NÂNG CAO LỜI NĨI ĐÀU C# ngôn ngữ tương đối giới thiệu Microsoft công bố phiên NET Framework vào tháng năm 2000 Ke từ đó, mức độ phố biến tăng lên nhiều trở thành ngôn ngữ lựa chọn cho nhà phát triển Windows Web sử dụng NET Framework Sự hấp dẫn C# phần đến từ cú pháp rõ ràng nó, xuất phát từ C/C++ lược bỏ số thứ trước thường gây chán nản cho lập trình viên Mặc dù đơn giản hóa, C# giữ sức mạnh C++ khơng có lý để khơng chuyến sang C# Ngơn ngữ khơng khó ngôn ngữ tuyệt vời đế học kỹ thuật lập trình Sự dễ học kết hợp với khả NET Framework làm cho C# cách tuyệt vời đế bạn bắt đầu nghề lập trình Các hành C# (hiện C# 7.0), nằm phiên tương ứng NET Framework, xây dựng thành cơng sẵn có cộng thêm nhiều tính hấp dẫn Các phát hành Visual Studio dịng cơng cụ phát triển Express mang đến nhiều cải tiến để giúp công việc bạn dễ dàng tăng đáng kể suất bạn C# ngôn ngữ tương đối Việt Nam có chuyên gia lập trinh viên hiếu sâu ngơn ngữ này, có tài liệu tiếng Việt chuyên sâu viết lập trinh c# Sau thời gian tìm hiêu, làm việc tham gia giảng dạy lập trình C#, nhóm tác giả định biên soạn sách “Giáo trình lập trình nâng cao" nhằm phục vụ công tác giảng dạy học tập thuộc khối ngành công nghệ thông tin trường đại học, cao đẳng làm tài liệu tham khảo cho lập trình viên muốn tìm hiểu c# Cuốn sách nhằm dạy bạn tất khía cạnh lập trình c#, từ thân ngơn ngữ, thơng qua lập trình Console Windows, đến việc sừ dụng nguồn liệu cuối số kỳ thuật nâng cao Bạn tìm hiểu số khả Visual C# 2010 Express Visual Studio 2010 cách sản phẩm hỗ trợ bạn phát triển ứng dụng Nội dung sách bao gồm kiến thức lập trình C# giúp người đọc dễ dàng tiếp cập với ngôn ngữ bước đệm giúp bạn trở thành lập trình viên NET Framework chun nghiệp Ngồi ra, sách bao gồm số chủ đề nâng cao xử lý ngoại lệ, chế ủy quyền kiện, lập trình đồng thời, kết nối ADO NET kết gán liệu với điều khiển Winform Để đọc hiểu sách người đọc cần nắm vững kiến thức về: nhập mơn lập trình, lập trình hướng đối tượng Giáo trình: LẬP TRÌNH NẰNG CAO Cấu trúc sách: Chương - Giới thiệu ngôn ngữ C# Chương mở đầu giới thiệu C# cách khớp với mơi trường NET Bạn tìm hiếu ngun tắc việc lập trình mơi trường tìm hiếu cơng cụ phát triển ứng dụng C# Visual C# 2010 Express (VCE) Visual Studio 2010 (VS) Bạn bắt đầu viết ứng dụng C# Điều minh họa ứng dụng dễ dàng thiết lập chạy môi trường phát triển vs, đồng thời giới thiệu số khái niệm ngôn ngữ c# Chương - Nen tảng ngôn ngữ C# Trong chương bạn tìm hiểu nhiều khái niệm ngôn ngữ c#, từ kiểu liệu dựng sẵn tới khái niệm biến, hằng, biểu thức cách thao tác với chúng Bạn tăng cường cấu trúc ứng dụng điều khiển luồng (rẽ nhánh lệnh lặp) bạn xem xét số kiểu liệu phức bao gồm kiểu liệt kê, kiểu cấu trúc, mảng xâu ký tự Chương - Lập trình hướng đối tượng C# Trong chương trước hết bạn tìm hiểu cách định nghĩa kiểu riêng cách sử dụng lớp cách sử dụng chúng chương trình bạn Bạn tìm hiểu cách tạo đối tượng từ lớp Bạn học cách sử dụng lóp đối tượng để mơ hình hóa thứ tồn giới thực cách sử dụng chúng làm đơn giản hóa nhiệm vụ viết chương trình để giải tốn phức tạp Tiếp đó, bạn tìm hiếu cách lớp dẫn xuất từ lóp khác Bạn học cách bạn nạp chồng toán tử để thực mã lệnh riêng bạn toán tử cụ thể sử dụng, thay sử dụng mã lệnh mặc định cung cấp c# Cuối cùng, bạn tìm hiểu giao diện Một giao diện chứa danh sách khai báo chẳng hạn khai báo phương thức thuộc tính Sau đó, bạn u cầu lóp bạn thực thi giao diện có Chương - Vào/ra tệp chuỗi hóa đối tượng Không gian tên System.IO cho phép bạn tương tác với cấu trúc thư mục tệp máy tính Trong chương này, bạn học cách chép tệp thư mục cách lấy thông tin tệp tin thư mục chương trình Bạn tìm hiếu cách di chuyển liệu vào khỏi luồng khác (ví dụ: dựa tệp, dựa xâu ký tự dựa nhớ) Phần sau cùa chương xem xét dịch vụ hóa đối tượng tảng NET Nói cách đơn giản, chuỗi hóa cho phép bạn làm bền trạng thái đối tượng (hoặc tập họp đối tượng có liên quan) vào luồng đế sử dụng sau Deserialization (như mong đợi) trình kéo đối tượng từ luồng vào nhớ đế Giáo trình: LẬP TRÌNH NÂNG CAO tiêu thụ ứng dụng bạn Sau bạn hiểu điều bản, bạn tìm hiểu cách tùy chỉnh quy trình hóa giao diện ISerializable tập hợp thuộc tính NET Chương - Xử lý ngoại lệ Điếm chương thảo luận cách xử lý bất thường thời gian chạy sở mã lệnh bạn thông qua việc sử dụng xử lý ngoại lệ có cấu trúc Bạn khơng tìm hiểu từ khóa C# cho phép bạn xử lý vấn đề (try, catch, throw, when finally), mà bạn hiểu khác biệt ngoại lệ mức ứng dụng mức hệ thống Chương - Tiểu trình đồng hóa Chương xem xét cách xây dựng ứng dụng đa tiểu trình minh họa số kỹ thuật bạn có thê sử dụng đê tạo mã an tồn tiêu trình Bạn tìm hiêu cách sử dụng tiêu trình, cho phép bạn thực song song nhiều tác vụ Bạn học có số vấn đề cần xem xét ứng dụng bạn sử dụng nhiều tiểu trinh Cụ thể, bạn cần lo lắng việc đồng hóa tiểu trình xử lý bế tắc phát sinh hai tiểu trình tranh giành tài nguyên để thực công việc chúng Chương - Cơ chế ủy quyền kiện Mục đích chương này làm sáng tị kiểu ủy nhiệm Nói cách đơn giản, ủy nhiệm NET đối tượng trỏ đến phương thức khác ứng dụng bạn Sử dụng kiểu này, bạn xây dựng hệ thống cho phép nhiều đối tượng tham gia vào hội thoại hai chiều Sau bạn xem xét việc sử dụng ủy quyền NET, sau bạn giới thiệu từ khóa event c#, bạn sử dụng từ khóa để đơn giản hóa thao tác lập trình ủy nhiệm Chương - Collection Iterator Trong chương bạn tìm hiểu collection Collection đối tượng lưu trữ nhiều phần tử bạn thay đồi khả bạn thay đổi sau sức chứa chúng sau tạo chúng Những đối tượng cung cấp cách linh hoạt để truy cập phần tử chúng Khi bạn thành thạo C#, bạn thấy collection trở nên hữu ích bạn cần thực thao tác liệu phức tạp Bạn học cách tạo trình liệt kê sừ dụng chúng để lặp qua collection Chương - Xây dựng ứng dụng Windows Forms Trong chương bạn tìm hiểu lập trình Windows Một chương trình Windows tận dụng mơi trường đồ họa để hiển thị sử dụng chuột, bàn phím, để nhập liệu Bạn làm việc với Windows Forms sử dụng số điều khiển kèm với Visual Studio Các điều khiển bao gồm loạt chức thông qua khả thiết kế Giáo trình: LẬP TRÌNH NÂNG CAO Visual Studio, việc phát triển giao diện người dùng xử lý tương tác người dùng đơn giản thú vị Do khơng thể trình bày tất điều khiển Visual Studio, phạm vi sách, chương xem xét số điều khiển sử dụng phổ biến nhất, từ nhãn hộp văn đến list view điều khiển tab Chương 10 - Xử lý liệu vói ADO NET Trong chương này, bạn tìm hiểu cách truy cập sờ liệu từ chương trình C# ADO NET ADO NET đối tượng liệu hoạt động NET Framework Bạn học cách kết nối với sở liệu đưa câu lệnh SQL để truy xuất sửa đổi thông tin lưu trữ sở liệu Chương 11 - Kết gán liệu với điều khiển Windows Forms Chương mở rộng thảo luận chương 11 việc truy cập liệu sử dụng ADO NET Bạn tìm hiểu kỹ thuật mà liệu “ràng buộc” với điều khiển Windows Forms hiển thị liệu Bởi tất điều khiển dẫn xuất khả kết gán liệu chúng từ lóp Control sở, kiến thức thuộc tính phương thức áp dụng cho tất điều khiển Đây lần xuất sách nên cho dù nhóm tác giả cố gắng, chắn sách cịn có thiếu sót định Nhóm tác giả mong nhận ý kiến đóng góp thầy cô, đồng nghiệp bạn đọc để tiếp tục hồn thiện sách nhằm phục vụ tốt nhu cầu học tập tham khảo sinh viên bạn đọc Các tác giả Giáo trình: LẬP TRÌNH NÂNG CAO MỤC LỤC LỜI NÓI ĐÀU Chương GIỚI THIỆU NGỒN NGỮ C# 15 1.1 .NET framework gì? 15 1.1.1 .NET Framework bao gồm gì? 16 1.1.2 Viết ứng dụng bang NET Framework 17 1.2 C# gì? 20 1.3 Visual Studio 2010 22 1.3.1 Các sản phẩm Visual Studio 2010 Express 23 1.3.2 Solution 23 1.4 Viết chương trình C# 23 1.4.1 Chương trình C# 24 1.4.2 Phát triến chương trình C# 33 1.4.3 Sử dụng Visual Studio 2010 Debugger 35 Bài tập 38 Chương NÈN TÀNG NGỒN NGỮ C# 40 2.1 Kiểu liệu 40 2.1.1 Kiểu liệu dựng sẵn 41 2.1.2 Chọn kiểu liệu 43 2.1.3 Chuyển đổi kiểu liệu 44 2.2 Biến Hằng 47 2.2.1 Gán giá trị xác định cho biến 47 2.2.2 Hằng 50 2.2.3 Kiểu liệt kê 52 Giáo trình: LẬP TRÌNH NÂNG CAO 2.2.4 Kiểu xâu ký tụ 55 2.2.5 Định danh 55 2.3 Biểu thức 55 2.3.1 Toán tử gán (=) 56 2.3.2 Toán tử toán học .56 2.3.3 Toán tử tăng giảm 58 2.3.4 Toán tử quan hệ 61 2.3.5 Toán tử logic 62 2.3.6 Độ ưu tiên toán tử .64 2.3.7 Tốn tử ba ngơi 66 2.3.8 Không gian tên 67 2.4 Điều khiển luồng 71 2.4.1 Rẽ nhánh khơng có điều kiện 71 2.4.2 Rể nhánh có điều kiện 73 2.4.3 Câu lệnh lặp 80 2.5 Các kiểu liệu phức 89 2.5.1 Kiểu liệt kê 89 2.5.2 Cấu trúc 92 2.5.3 Mảng 96 2.5.4 Thao tác xâu ký tự 104 Bài tập 109 Chương LẬP TRÌNH HƯỚNG ĐĨI TƯỢNG TRONG C# 111 3.1 Xây dựng lớp - đối tượng 112 3.1.1 Định nghĩa lóp 112 3.1.2 Tạo đối tượng 117 3.1.3 Nạp chồng phương thức 121 3.1.4 Sử dụng thành viên tĩnh 124 3.1.5 Hủy đối tượng 126 3.1.6 Truyền tham số 129 Giáo trình: LẬP TRÌNH NÂNG CAO 3.1.7 Đóng gói liệu với thuộc tính 136 3.1.8 Nạp chồng toán tử 140 3.2 Ke thừa - đa hình 148 3.2.1 Quan hệ chuyên biệt hóa tổng quát hóa 148 3.2.2 Kế thừa 149 3.2.3 Đa hình 154 3.2.4 Lớp trừu tượng 163 3.2.5 Gốc tất lớp: Lóp Object 168 3.3 Giao diện 170 3.3.1 Thực thi giao diện 171 3.3.2 Thực thi nhiều giao diện 174 3.3.3 Mờ rộng giao diện 175 3.3.4 Kết hợp giao diện 175 3.3.5 Truy cập phương thức giao diện 179 Bài tập 185 Chương VÀO/RA TỆP VÀ CHUỖI HÓA ĐỐI TƯỢNG 187 4.1 Luồng (Stream) 187 4.2 Không gian tên System.IO 188 4.3 Các lóp thao tác tệp thư mục 189 4.3.1 Sao chép tệp thư mục 190 4.3.2 Lấy thông tin tệp thư mục 198 4.4 Làm việc với tệp liệu 203 4.4.1 Thứ tự việc đọc tệp 203 4.4.2 Các phương thức cho việc tạo mở tệp 204 4.4.3 Viết vào tệp văn 204 4.4.4 Đọc tệp văn 207 4.4.5 Viết thông tin nhị phân vào tệp 208 4.4.6 Đọc thông tin nhị phân từ tệp 211 Giáo trình: LẬP TRÌNH NÂNG CAO 4.5 Chuỗi hóa đối tượng 214 4.6 Cấu hình đối tượng để chuỗi hóa 217 4.6.1 Định nghĩa kiếu chuỗi hóa 218 4.6.2 Trường public, trường private thuộc tính public 219 4.7 Chuỗi hóa đối tượng theo khuôn dạng 220 4.7.1 Chọn khn dạng chuỗi hóa 220 4.7.2 Chuỗi hóa đối tượng bang BinaryFormatter 223 4.7.3 Chuỗi hóa đối tượng bang SoapFormatter 226 4.7.4 Chuỗi hóa đối tượng bang XmlSerializer 227 4.8 Chuỗi hóa tập đối tượng 229 Bài tập 231 Chương xử LÝ NGOẠI LỆ 233 5.1 Ngoại lệ Framework NET 234 5.1.1 Ngoại lệ gì? 234 5.1.2 Các khối xây dựng xử lý ngoại lệ NET 236 5.1.3 Lớp sờ System.Exception 237 5.2 Ném bắt ngoại lệ 239 5.2.1 Ném ngoại lệ chung 243 5.2.2 Bắt ngoại lệ 244 5.3 Cấu hình trạng thái ngoại lệ 246 5.3.1 Thuộc tính Targetsite 246 5.3.2 Thuộc tính StackTrace 247 5.3.3 Thuộc tính HelpLink 248 5.3.4 Thuộc tính Data 249 5.4 Ngoại lệ mức hệ thống (System.SystemException) 252 5.5 Ngoại lệ mức ứng dụng (System.ApplicationException) 256 5.5.1 Xây dựng ngoại lệ tùy chỉnh, tình 256 5.5.2 Xây dựng ngoại lệ tùy chỉnh, tình 259 10 Giáo trình: LẬP TRÌNH NÂNG CAO TabPage Collection Editor ? X tpLoaiSach properties: Members: tpLoaiSach + tpNXB tpTacgia tpSach £ tpHoaDon SỊỊHị □=: Z* > RightToLeft No Text Loại sách UseVisualStyleBack False UseWaitCursor tpThongke False v Behavior AllowDrop False ContextMenuStrip (none) ImeMode NoControl v Data > (Applicationsetting > (DataBindings) Tag v Design (Name) tpLoaiSach GenerateMember True Add Remove Locked False Modifiers Private V V Focus OK Cancel Hình 11.9: Thiết lập thuộc tính TabPage cho TabControl - Bước 3: Thiết kế giao diện cho TabPage Với TabPage Loại sách, Nhà xuất bản, Tác giả làm việc trực tiếp với thực thể tương ứng Mồi thực thể bao gồm trường liệu mã tên, sể giới thiệu cách làm chi tiết cho TabPage, ví dụ TabPage Nhà xuất bản, bạn làm với TabPage khác tương tự Trước thực việc thiết kế giao diện cho TabPage Nhà xuất bản, bạn cần chắn đứng TabPage Nhà xuất Mờ cửa sổ công cụ (ToolBox) chọn đối tượng Label, vẽ lên giao diện đặt thuộc tính Text “Mã NXB”, làm tương tự để tạo nhãn “Tên NXB” Tiếp tục chọn đối tượng TextBox vẽ lên giao diện, bên cạnh nhãn “Mã NXB” đặt thuộc tính Name cho TextBox tbMaNXB Làm tương tự để tạo đối tượng TextBox khác bên cạnh nhãn “Tên NXB” đặt thuộc tính Name cho TextBox tbTenNXB Chọn đối tượng Button vẽ lên form, đặt thuộc tính Name cho nút lệnh btThemNXB, đật thuộc tính Text cho nút lệnh “Thêm” Vẽ nút lệnh tiếp theo, đặt thuộc tính Name btSuaNXB, thuộc tính Text “Sửa” Làm tương tự với nút lệnh “Xóa” đặt thuộc tính Name là btXoaNXB, thuộc tính Text “Xóa” 494 Chương 11: KẾT GÁN DỮ LIỆU VỚI ĐIỀU KHIỂN WINDOWS FORMS Cuối cùng, bạn thêm đối tượng DataGridView vào form, đặt thuộc tính Name dgNXB, đặt thuộc tính Anchor Top, Left, Bottom, Right với mục đích làm cho dgNXB thay đổi kích thước TabControl thay đổi kích thước, đật thuộc tính AllowUserToAddRows thuộc tính AllowUserToDeleteRows False nhằm mục đích khơng cho phép người dùng thêm xóa dịng liệu DataGridView, đặt thuộc tính AutoSizeColumnsMode Fill giúp cho độ rộng cột phân bổ khung hiển thị DataGridView, đặt thuộc tính SelectionMode FullRowSelect để đảm bảo click chuột vào DataGridView dịng liệu nơi click chuột lựa chọn, đặt thuộc tính MultiSelect False để khơng cho phép người dùng chọn nhiều dòng thời điếm, đặt thuộc tính Readonly True đế khơng cho phép người dùng chỉnh sửa liệu trực tiếp DataGridView ■s Quản lý sách Loại sách — Nhà xuât bân Tác già Sách Bán hàng □ X Thổng kê Mã NXB Tên NXB Thêm Sủa Xóa Hình 11.10:: Giao diện TabPage Nhà xuất Đến đây, bạn viết mã lệnh cho TabPage chạy thử chương trình để xem cách tương tác chương trình bạn với sở liệu Để chương trình chạy theo mong muốn mình, bạn cần hiểu rõ kiện đối tượng Nếu bắt khơng kiện, chương trình chạy lên khơng có khả tương tác ý Ví dụ, bạn muốn chương trình chạy lên, liệu hiển thị lên vị trí giao diện Bạn cần thực viết lệnh lấy liệu hiển thị liệu vào DataGridView kiện Load Form Hoặc bạn muốn bấm chuột vào nút Thêm, liệu khung nhập liệu thêm vào bảng liệu hiển thị xuống DataGridView phía Điều 495 Giáo trình: LẬP TRÌNH NÂNG CAO chứng tơ bạn cần phải bắt kiện Click nút Thêm viết mã lệnh thêm liệu kiện • Lấy liệu lên form Đe bắt kiện Load cho form Bạn cần lựa chọn form, mở cửa so Properties, chọn kiện Load, click đúp chuột vào kiện đó, đoạn mã lệnh sinh file Forml.cs Bạn thực viết mã lệnh vào thân hàm Đoạn mã lệnh sau thực việc lấy liệu hiến thị liệu vào DataGridView: //khai báo biến dùng chung nhiều kiện string strConnectionString = "Data Source= ServerName;" + "Initial Catalog = DatabaseName;Integrated Security = True"; //Chú ý: ServerName tên SQLServer mà bạn truy cập vào, DatabaseName tên sở liệu bạn //ví dụ: string strConnectionString = "Data Source=Localhost\\SQLEXPRESS; " + // "Initial Catalog=QLSach; Integrated Security=True"; SqlConnection conn = null; SqlDataAdapter daNXB; DataTable dtNXB; //Bắt kiện Load form FQLSach private void FQLSach-Loadfobject sender, EventArgs e) { conn = new SqlConnection(strConnectionString); conn.OpenQ;//thực mở kết nối //lấy liệu từ bảng nhà xuất đưa vào datagridview nhà xuất sql = "SELECT MaNXB as 'Mã nhà xuất bản', TenNXB as 'Tên nhà xuất bản' FROM NXB"; daNXB = new SqlDataAdapterfsql, conn);//daNXB thực câu lệnh select dtNXB = new DataTableQ; daNXB.Fill(dtNXB);//Đổ liệu vừa select vào bảng dtNXB 496 Chương 11: KẾT GÁN DỮ LIỆU VỚI ĐIỀU KHIỂN WINDOWS FORMS dgNXB.DataSource = dtNXB;//Gán DataSource datagridview dgNXB bảng dtNXB } • Thêm liệu vào sở liệu Bắt kiện Click cho nút lệnh Thêm viết mã lệnh tương ứng cho kiện Đoạn mã lệnh sau thể kiện click nút lệnh Thêm private void btThemNXB-Clickfobject sender, EventArgs e] { I/thêm nhà xuất string maNXB - tbMaNXB.Text; //Lấy liệu từ textBox tbMaNXB đưa vào biến maNXB string tenNXB = tbTenNXB.Text; //Lấy liệu từ textBox tbTenNXB đưa vào biến TenNXB string str = "Insert into NXB valuesf" + maNXB + + tenNXB + SqlCommand cmd - new SqlCommandfstr, conn]; cmd.ExecuteNonQuery(];//thực câu lệnh Insert //lấy lại liệu vừa thêm vào lên datagridview nhà xuất dtNXB.Rows.Clear(];//xóa dịng liệu cũ bảng dtNXB daNXB.Fill(dtNXB);//đổ liệu từ daNXB vào dtNXB } Bây giờ, bạn chạy thử chương trình, lựa chọn thẻ Nhà xuất thêm liệu vào bảng Nhà xuất cách nhập thông tin vào TextBox ấn vào nút Thêm, liệu thêm vào sờ liệu hiến thị lên DataGridView Trong đoạn mã lệnh sử dụng đối tượng SqlCommand đặt tên cmd Đây đối tượng dùng để thực thi câu lệnh SQL Server Hàm khởi tạo đối tượng cần hai tham số câu lệnh cần thực thi đối tượng kết nối vào sở liệu Ở đây, cmd dùng để thực câu lệnh Insert vào bảng liệu Do vậy, câu lệnh cần thực thi câu lệnh Insert, bạn cần viết câu lệnh Insert theo cú pháp hệ quản trị sờ liệu Sql Server Trong ví dụ này, chúng tơi sử dụng phương pháp nối chuỗi để thêm liệu vào câu lệnh Insert Đối tượng kết nối vào sở liệu đối tượng dùng chung cho tồn chương trinh, đối tượng conn khai báo phạm vi tồn 497 Giáo trình: LẬP TRÌNH NÂNG CAO chương trình Phương thức ExecuteNonQueryO đối tượng SqlCommand thực câu lệnh cập nhật liệu vào sở liệu Như giới thiệu, đối tượng SqlDataAdapter dùng để kết nối với sở liệu, truy vấn liệu từ sở liệu Ở đây, đối tượng SqlDataAdapter daNXB sử dụng chung cho toàn chương trình, đối tượng thực câu lệnh truy vấn liệu từ bảng Nhà xuất Do vậy, câu lệnh daNXB.Fill(dtNXB) thực lại câu lệnh truy vấn, lấy liệu từ sờ dừ liệu đổ vào bảng dtNXB Để tránh trùng lặp liệu bảng dtNXB, trước đổ liệu vào bảng bạn cần thực câu lệnh dtNXB.Rows.Clear() để xóa bỏ hết dịng liệu có bảng • Sửa liệu Khi liệu bạn thêm vào bảng bị sai sót, bạn muốn sửa liệu đó, bạn cần xác định dịng liệu cần chỉnh sửa, lấy liệu lên khung nhập liệu thực sửa liệu, sau bấm vào nút lệnh Sửa để thực sửa liệu Việc sửa cần cập nhật vào bảng liệu tương ứng sở liệu Cách nhanh đế bạn xác định dòng liệu cần chỉnh sửa bạn lựa chọn dòng liệu DataGridView Cùng lúc bạn lấy liệu dòng lựa chọn đẩy lên khung nhập liệu Khi khung nhập liệu hiến thị nội dung thời dòng liệu Bạn cần chỉnh sửa nội dung sai thực lệnh Sửa, liệu cập nhật lại vào DataGridView bảng liệu sở liệu Đoạn chương trình sau thực việc sửa liệu Nhà xuất mô tả trên: int vitrichon = -1; //khai báo biến lưu trữ vị trí dịng chọn khởi tạo = -1 Vì biến dùng nhiều kiện nên khai báo biến toàn cục, khai báo hàm kiện //bắt kiện CellClick dgNXB private void dgNXB_CellClick(object sender, DataGridViewCellEventArgs e) { vitrichon = e.Row!ndex;//lấy vị trí dịng chọn gán cho biến vitrichon if(vitrichon >=0J { //lấy liệu từ dòng chọn chuyển lên khung nhập liệu tbMaNXB.Text = dtNXB.Rows[vitrichon] [0].ToStringO; tbTenNXB.Text = dtNXB.Rows[vitrichon][l].ToStringO; 498 Chương 11: KẾT GÁN DỮ LIỆU VỚI ĐIỀU KHIỂN WINDOWS FORMS } } //bắt kiện Click cho nút lệnh Sửa private void btSuaNXB_Click(object sender, EventArgs e) { //sửa chữa dòng bảng Nhà xuất string maNXB = dtNXB.Rows[vitrichon][0].ToString(};//xác định maNXB từ dòng liệu chọn string tenNXB = tbTenNXB.Text;//Lấy liệu từ textBox tbTenNXB đưa vào biến TenNXB string str = "Update NXB set TenNXB = N'" + tenNXB + where MaNXB = + maNXB + SqlCommand cmd = new SqlCommandfstr, conn); cmd.ExecuteNonQueryO;//thực câu lệnh Update //lấy lại liệu vừa thêm vào lên datagridview nhà xuất dtNXB.Rows.Clear();//xóa dịng liệu cũ bảng dtNXB daNXB.Fill(dtNXB);//đổ liệu từ daNXB vào dtNXB } Bây giờ, bạn thực dịch chạy chương trình, bạn thấy sửa liệu bảng Nhà xuất thơng qua giao diện cùa Qua hướng dẫn trên, bạn thiết kế giao diện viết mã lệnh cho TabPage lại đe hồn thành chương trình BÀI TẬP 11.1 Cho biết phát biêu sau hay sai: a Một TextBox hỗ trợ kết gán phức tạp b Độ rộng điều khiển liên kết với nguồn liệu c Tất điều khiển hồ trợ kết gán đơn giản 499 Giáo trình: LẬP TRÌNH NÂNG CAO d Một nguồn liệu liên kết với điều khiển thời điểm e Một nguồn liệu có nhiều trình quản lý kết gán f Các thay đổi làm với giá trị điều khiển truyền đến nguồn liệu g Các điều khiển liên kết với đối tượng liệu tùy chỉnh h Lóp PropertyManager kế thừa từ lóp CurrencyManager i Chỉ thuộc tính public liên kết với điều khiển 11.2 Sự khác biệt kết gán đơn giản phức tạp gì? Giữa kết gán chiều hai chiều gì? 11.3 Tạo ứng dụng Windows Forms thực việc quản lý sinh viên có giao diện hình phía □ Quản lý sinh viên X Chương Trình Quản Lý Sinh Viên Mã Sinh viên Ngày sinh K6100001 Họ Sinh viên Giới tính 17/06/2000 Mã sv Họ sv Tên Tên Sinh viên Phạm Văn ® Nam o Nu sv Ngày sinh Mã Khoa Binh TOAN Giới tinh Mã Khoa K6100001 Phạm Văn B'nh 6/17/2000 Nam TOAN K6100002 Nguyễn Thị Hồi 3/23/2001 Nữ HOAH K6100003 Trần Thị Thũịng 12/4/1999 Nữ DIAL K6100004 Lé Công Phũộng 2/3/2001 Nam CNTT K6100005 Nguyễn Văn Toản 12/4/1999 Nam DIAL K6100006 Lê Thị Hoa 7/3/2001 Nữ HOAH K6100007 Nguyễn Anh Due 6/19/2000 Nam CNTT Thêm Sửa Xóa Thốt u cầu: Kết nối với sở liệu SQL Server đế truy xuất lưu trữ liệu Dữ liệu bao gồm: mã sinh viên, họ tên sinh viên, ngày sinh, giới tính, quê quán, mã khoa 500 Chương 11: KẾT GÁN DỮ LIỆU VỚI ĐIỀU KHIỂN WINDOWS FORMS Khung hiển thị danh sách sinh viên thay đổi kích cỡ theo form Khi click vào hàng khung thơng tin cùa sinh viên hiển thị TextBox control khác Cho phép thêm, sửa xóa sinh viên Cho phép lọc sinh viên theo mã khoa, giới tính Gọi ý: Thực bước sau đây: Tạo sở liệu gồm bảng sinh viên (mã, họ, tên, ngày sinh, giới tính, mã khoa) Giao diện: hạn chế việc nhập sai liệu: - Ngày sinh dùng DatetimePicker - Giới tính dùng ComboBox RadioButton - Mã khoa dùng ComboBox Khung hiển thị danh sách thay đổi kích cỡ theo form => dùng DataGridView để hiển thị danh sách từ bảng sinh viên, sử dụng thuộc tính Anchor Dock để thay đổi kích cỡ đối tượng theo form Kích thơng tin từ khung hiển thị lên TextBox => bắt kiện CellContentClick khung hiển thị thực hiện: - Lấy dòng click - Hiên thị thông tin sinh viên lên các TextBox control khác cách tương ứng Thực thêm/sửa/xóa sinh viên => dùng nút Button, bắt kiện click nút thực hiện: - Thêm/sửa/xóa dịng liệu bảng sinh viên - Load lại DataGridView Thực lọc sinh viên theo mã khoa, giới tính: - Select sinh viên có thuộc tính mã khoa giới tính theo lựa chọn người dùng - Hiển thị lên DataGridView 501 Giáo trình: LẬP TRÌNH NÂNG CAO 11.4 Xây dựng chương trình WinForms Quản lý cửa hàng đồ ăn nhanh Yêu cầu: - Xác định lượng hàng cịn hay hết khách đặt (nếu hết thơng báo không đật được) - Cập nhật thông tin đơn hàng - Thống kê doanh thu theo mặt hàng - Thống kê doanh thu theo ngày/tháng 11.5 Xây dựng chương trình WinForms Quản lý phịng khám u cầu: - Lun trữ danh sách khách hàng (Tên, SĐT, Ngày sinh, địa chỉ) - Thông tin dịch vụ khách làm (ngày, tên dịch vụ, đơn giá, số lượng, thành tiền, ngày hẹn khám lại) - Thống kê doanh thu theo ngày, tháng, theo loại dịch vụ - Tìm kiếm khách theo SĐT - Hiển thị danh sách khách đến ngày hẹn 502 BẢNG THUẬT NGỮ ANH VIỆT Tiếng Anh Tiếng Việt Các cách dịch khác abstract class lớp trừu tượng abstract method phương thức trừu tượng argument đối số array list danh sách mảng assembly đơn vị có khả tái sử dụng callback method/function phương thức gọi lại class lớp collection sưu tập component thành phần cấu thành hệ thống connected model mơ hình kết nối connection pool nhóm kết nối connection string chuỗi kết nối constructor hàm tạo control điều khiến critical section phân đoạn quan trọng data access model mô hình truy cập liệu data binding kết gán liệu deadlock bế tắc debug gõ lỗi delegate ũy quyền ủy thác deserialization giải chuỗi hóa giải hóa tham số thực hàm sử dụng tham số truyền vào hàm khác tập hợp phương thức khởi tạo tẳc nghẽn 503 Tiếng Việt Tiếng Anh Các cách dịch • khác disconnected model mơ hình ngắt kết nối escape character ký tự encapsulation đóng gói bao đóng enumeration kiểu liệt kê kiếu liệu liệt kê exception ngoại lệ exception handling xử lý ngoại lệ file tệp focus tập trung vào cách dịch khác: tụ vào tiêu diêm form biểu mẫu garbage collection chế thu dọn rác hash table bảng băm inheritance thừa kế instance thực thể thể interface giao diện giao tiếp iterator chạy message thông điệp method/ phương thức, hàm member function namespace không gian tên native code mà gốc object đối tượng operator overload nạp chồng toán tử parameter tham số polymorphism đa hình 504 tệp tin thu dọn rác hàm thành viên Tiếng Viet Tiếng Anh Các cách dịch • khác property thuộc tính queue hàng đợi race condition điều kiện chạy đua reference type kiểu liệu tham chiếu serialization chuồi hóa đối tượng stack ngăn xếp static member thành viên tĩnh stored procedure thủ tục lưu trữ sẵn thủ tục lưu stream luồng dòng tệp tin synchronization đồng hóa thread tiểu trình value type kiểu liệu giá trị variable biến virtual method phương thức ảo dịng xếp hàng hóa luồng hàm ảo 505 TÀI LIỆU THAM KHẢO Jason Price, Mike Gunderloy, Mastering Visual c# NET, edition, Publisher: Sybex, 2002 Rob Miles, c# Programming Yellow Book, Independently published, 08/2019 Morgan Skinner, Jon Reid, Jacob Hammer Pedersen, Christian Nagel, Karli Watson, /tegzwnng Visual C#2010, Publisher: Wrox, April 2010 Jesse Liberty and Donald Xie, Programming c# 3.0, Fifth Edition, Publisher: O'Reilly Media, Inc., 2007 Ian Griffiths, Matthew Adams, and Jesse Liberty, Programming c# 4.0, Sixth Edition, Publisher: O'Reilly Media, Inc., 2010 Andrew Troelsen, Pro c# 5.0 and the NET 4.5 Framework, Sixth Edition, Publisher: Apress, 2012 Sam A Abolrous, Learn c#: Includes the c# 3.0 Features, Publisher: Wordware Publishing, Inc., 2008 Benjamin Perkins, Jacob Vibe Hammer, Jon D Reid, Beginning c# Programming with Visual Studio 2015, Publisher: John Wiley & Sons, Inc.2015 Andrew Troelsen, Philip JapiksePro, c# With NET and NET Core, Eighth Edition, Publisher: Apress, 2017 10 Bill Sempf, Chuck Sphar, Stephen R Davis, c# 2010 All-in-One for Dummies, edition Publisher: For Dummies, 2010 11 Mohammad Rahman, Expert c# 5.0: with the NET 4.5 Framework, edition, Publisher: Apress, 2013 12 Mark Michaelis, Eric Lippert, Essential c# 5.0, (4th Edition), Publisher: Addison- Wesley Professional, 2012 13 Svetlin Nakov & Co., Fundamentals of Computer Programming with CH: The Bulgarian c#Book, Publisher: Faber Publishing, Bulgaria, 2013 506 14 Stephen c Perry, Core c# and NET, Publisher: Prentice Hall PTR, 2005 15 John Sharp, Microsoft Visual c# 2012 Step by Step, Publisher: O’Reilly Media, Inc, 2012 16 Simon Kedal, Object Oriented Programming using c#, Publisher: BookBoon, 2011 17 E Balagurusamy, Programming in c#: A Primer, 3rd Edition, Publisher: Sams Publishing, 2004 18 Dương Quang Thiện, NET toàn tập, NXB tổng hợp TP HCM, 2005 507 GIAO TRINH LẠP TRINH NANG CAO NHÀ XUẤT BẢN BÁCH KHOA HÀ NỘI Ngõ 17 - Tạ Quang Bửu - Hai Bà Trung - Hà Nội ĐT: 024 38684569; Fax: 024 38684570 https://nxbbk.hust.edu.vn Chịu trách nhiệm xuất bản: Giám đốc - Tổng biên tập: TS BÙI ĐỨC HÙNG Biên tập: NGUYỄN THỊ THU Sửa in: vũ THỊ HẰNG Trình bày bìa: DƯƠNG HỒNG ANH In 660 khố (19 X 27) cm Công ty TNHH in thương mại Sơng Lam, số 01 Phùng Chí Kiên, phường Nghĩa Đô, quận cầu Giấy, Hà Nội Số xuất bản: 77 - 2021/CXBIPH/29 - 01/BKHN; ISBN: 978-604-316-052-9 Số QĐXB: 92/QĐ - ĐHBK - BKHN ngày 16/4/2021 In xong nộp lưu chiểu năm 2021

Ngày đăng: 17/07/2023, 08:06

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan