ĂY BAN NHÂN DÂN THÀNH PHà Hâ CHÍ MINH TR¯âNG CAO ĐÀNG BÁCH KHOA NAM SÀI GÒN GIÁO TRÌNH MÔN HàC/MÔ ĐUN : LÀP TRÌNH WINDOWS FORMS NGÀNH/NGHÀ : TIN HàC ĀNG DĀNG TRÌNH ĐÞ : CAO ĐÀNG Ban hành kèm theo Quyết định số:409/QĐ_NSG, ngày 02 tháng 11 năm 2021 cÿa Hiệu trưởng Trường Cao Đẳng Bách Khoa Nam Sài Gòn Thành phß Hß Chí Minh, năm 2021 TUYÊN BÞ BÀN QUYÀN Tài liáu này thußc lo¿i sách giáo trình nên các nguãn thông tin có thể đ°ÿc phép dùng nguyên 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. 2 MĀC LĀC GIÁO TRÌNH MÔN HàC/MÔ ĐUN. 6 CH¯¡NG 1 TäNG QUAN VÀ .1 Tång quan vÁ ki¿n trúc căa .2 Môi tr°ßng thực thi ngôn ngă chung CLR (Common Language Runtime) .1 Biên dßch mã lánh .2 Há tháng kiểu dă liáu chung CTS (Common Type System) .4 Private Assembly và Shared Assembly .5 TiÁn biên dßch mßt Assembly .6 Kiểm chąng mã lánh (Code Verification).
15 CH¯¡NG 2 NGÔN NGĂ LÀP TRÌNH C# .1 Ch°¢ng trình đ¿u tiên .3 Các kiểu dă liáu đßnh nghĩa sẵn căa C# .1 Kiểu dă liáu giá trß đ°ÿc đßnh nghĩa sẵn.2 Các kiểu sá dấu chấm đßng .3 Kiểu sá thÁp phân .2 Kißu dă liáu tham chi¿u đ°ÿc đßnh nghĩa sẵn .1 Kiểu dă liáu object .2 Kiểu dă liáu string .4 Luãng điÁu khiển ch°¢ng trình .1 Câu lánh if .2 Câu lánh switch .2 Câu lánh lặp .1 Câu lánh lặp for .2 Câu lánh lặp while .3 Câu lánh lặp do&while .4 Câu lánh lặp foreach .3 Câu lánh nhÁy .1 Câu lánh goto .2 Câu lánh break .3 Câu lánh continue .4 Câu lánh return .5 Cấu trúc ch°¢ng trình .2 Kiểu dă liáu cấu trúc – struct.6 Ph°¢ng thąc .2 TruyÁn tham sá cho ph°¢ng thąc .7 Dă liáu kiểu array .2 Làm viác vái array.3 Array nhiÁu chiÁu .2 Toán tā tam nguyên (ternary operator) .3 Chỉ d¿n checked và unchecked .9 Enumerations – Kiểu liát kê .1 Khai báo sā dāng namespace .2 Bí danh cho Namespace .11 Bài thực hành. 43 CH¯¡NG 3: LÀP TRÌNH WINFORM. Giái thiáu Visual Studio. Các bÁng điÁu khiển và cāa så trong giao dián:.
Ch°¢ng trình Hello World. Label-Textbox-Button. XĀ LÝ DĂ LIàU VàI ADO.1 Ki¿n trúc tång quan căa ADO.2 Tång quan vÁ các mô hình xā lý dă liáu trong ADO.2 Mô hình ngắt k¿t nái.3 Làm viác vái mô hình K¿t nái trong ADO.4 Thực thi mßt Command .5 Thực thi Stored Procedure (thă tāc l°u tră sẵn) vái đái t°ÿng Command .6 Sā dāng Parameter trong các Command (không phÁi Stored Procedures) .1 Truy xuất các dòng dă liáu vái DataReader .2 Truy xuất giá trß căa column .3 Bài thực hành.4 Làm viác vái mô hình Ngắt k¿t nái: DataSet và DataTable .2 N¿p dă liáu vào DataSet .1 Dùng DataReader để n¿p dă liáu vào DataSet .2 N¿p dă liáu vào DataSet bằng DataAdapter .3 Bài thực hành.4 CÁp nhÁt CSDL bằng DataAdapter.2 Đãng bß hóa dă liáu giăa DataSet và CSDL .3 Sā dāng Transactions để Roll Back nhiÁu cÁp nhÁt .4 Xác đßnh các dòng gây ra lỗi cÁp nhÁt .5 Đßnh nghĩa Relationships giăa các Table trong DataSet .5 Sā dāng Data Binding .2 Các nguãn dă liáu căa DataBinding .4 Bài thực hành.6 Lựa chán giăa mô hình K¿t nái và mô hình Ngắt k¿t nái. 118 TÀI LIàU THAM KHÀO.
125 5 GIÁO TRÌNH MÔN HàC/MÔ ĐUN Tên môn hác//mô đun: LÁp Trình Windows Form Mã sß môn hác//mô đun: MH19 Thãi gian thực hián môn hác: 90 giß, (Lý thuy¿t: 30 giß; Thực hành: 58, thí nghiám, thÁo luÁn, bài tÁp: 0 giß; Kiểm tra: 2 giß) I. Vß trí, tính chất cÿa môn hác: - Vß trí: Môn hác này thußc khái ki¿n thąc chuyên môn trong ch°¢ng trình đào t¿o bÁc trung cấp ngành Tin hác ąng dāng. - Tính chất: là môn hác bắt bußc. Môn hác nhằm giúp sinh viên b°ác đ¿u làm quen vái môi tr°ßng lÁp trình Windows vái .Net, ngôn ngă C#.
Sinh viên thực hián nhiÁu ví dā để nắm rõ h¢n các kỹ thuÁt lÁp trình h°áng đái t°ÿng. VÁ ki¿n thąc: - Nắm đ°ÿc ki¿n thąc c¢ bÁn vÁ Visual Studio, .Net Framework và ngôn ngă lÁp trình C# - Trình bày đ°ÿc các chąc năng, thußc tính, ph°¢ng thąc, sự kián căa các đái t°¢ng lÁp trình giao dián - Thực hián đ°ÿc t°¢ng tác c¢ sá dă liáu 2. VÁ kỹ năng: - VÁn dāng đ°ÿc ki¿n thąc c¢ bÁn căa ngôn ngă C# - Sā dāng thành th¿o các đái t°ÿng điÁu khiển để lÁp trình giao dián - T°¢ng tác đ°ÿc vái c¢ sá dă liáu - LÁp trình đ°ÿc mßt sÁn phÁm có ąng dāng thực t¿ - Sā dāng đ°ÿc ngôn ngă C# để xây dựng ąng dāng trên framework. VÁ năng lực tự chă và trách nhiám: Rèn luyán lòng yêu nghÁ, t° th¿ tác phong công nghiáp, tính kiên trì, sáng t¿o trong công viác 6 CH¯¡NG 1 TàNG QUAN VÀ .NET FRAMEWORK Māc tiêu: - Tång quan vÁ ki¿n trúc căa .NET Framework - Môi tr°ßng thực thi ngôn ngă chung CRT 1.1 Táng quan vÁ ki¿n trúc cÿa .NET Framework đ°ÿc thi¿t k¿ nh° là môi tr°ßng tích hÿp để đ¢n giÁn hóa viác pháttriển và thực thi các ąng dāng trên Internet, trên desktop d°ái d¿ng Windows Forms, hoặc thÁm chí là trên cÁ các thi¿t bß di đßng (vái Compact Framework).
Các māc tiêu chính mà .NET framework h°áng đ¿n là: - Cung cấp mßt môi tr°ßng h°áng đái t°ÿng nhất quán cho nhiÁu lo¿i ąng dāng - Cung cấp mßt môi tr°ßng giÁm tái thiểu sự xung đßt phiên bÁn (<DLL Hell= – Đßa ngāc DLL) tÿng làm điêu đąng các lÁp trình viên Windows (COM), và đ¢n giÁn hóa quá trình triển khai/cài đặt. - Cung cấp mßt môi tr°ßng linh đßng, dựa trên các chuÁn đã đ°ÿc chąng nhÁn để có thể chąa trên bất cą há điÁu hành nào. C# và mßt ph¿n chính căa môi tr°ßng thực thi .NET, CLI (Common Language Infrastructure – H¿ t¿ng ngôn ngă chung) đã đ°ÿc chuÁn hóa bái ECMA. - Để cung cấp mßt môi tr°ßng quÁn lý đ°ÿc, trong đó mã đ°ÿc dß dàng xác thực để thực thi an toàn.NET Framework đ°ÿc thi¿t k¿ thành 2 ph¿n: CLR (Common Language Runtime – Khái thąc thi ngôn ngă chung) và FCL (Framework Class Library – Th° vián láp khung) nh° hình d°ái 7 Hình 1.NET Framework CLR, ph¿n cài đặt CLI căa Microsoft, làm nhiám vā quÁn lý sự thực thi mã lánh và tất cÁ các tác vā liên quan đ¿n nó: biên dßch, quÁn lý bß nhá, bÁo mÁt, quÁn lý tuy¿n đo¿n, và thực thi an toàn kiểu.
Mã lánh thực thi trong CLR đ°ÿc gái là mã đ°ÿc quÁn lý (managed code), phân biát vái mã không đ°ÿc quÁn lý (unmanaged code), là mã lánh không cài đặt nhăng yêu c¿u để thực thi trong CLR – chẳng h¿n nh° COM hoặc các thành ph¿n dựa trên Windows API. FCL là th° vián kiểu dă liáu có thể tái sā dāng (gãm các class, structure, &) dành cho các ąng dāng thực thi trong. Tất cÁ các ngôn ngă hỗ trÿ .NET Framework đÁu sā dāng th° vián láp dùng chung này.2 Môi tr°ãng thực thi ngôn ngă chung CLR (Common Language Runtime) CLR (Common Languge Runtime – Môi tr°ßng thực thi ngôn ngă chung) quÁn lý toàn bß vòng đßi căa mßt ąng dāng: nó n¿p các láp có liên quan, quÁn lý sự thực thi căa các láp, và đÁm bÁo quÁn lý bß nhá mßt cách tự đßng. Ngoài ra, CLR còn hỗ trÿ tích hÿp giăa các ngôn ngă để cho phép mã lánh đ°ÿc sinh ra bái các ngôn ngă khác nhau có thể t°¢ng tác vái nhau mßt cách liÁn m¿ch.1 Biên dßch mã lánh .NET Trình biên dßch t°¢ng thích vái CLR sẽ sinh mã thực thi cho môi tr°ßng thực thi chą không phÁi là mã thực thi cho CPU cā thể.
Mã thực thi này đ°ÿc bi¿t đ¿n qua tên gái CIL (Common Intermediate Language – Ngôn ngă trung gian chung), hay MSIL (Microsoft 8 Intermediate Language – Ngôn ngă trung gian căa Microsoft); đó là ngôn ngă kiểu assembler đ°ÿc đóng gói trong các file EXE hoặc DLL. Các file này không phÁi thußc d¿ng file có thể thực thi nh° thông th°ßng, chúng c¿n trình biên dßch JIT (Just-in- Time) căa môi tr°ßng thực thi để chuyển đái IL chąa trong nó sang d¿ng mã lánh cā thể căa máy khi ąng dāng thực sự thực thi. Quá trình biên dßch, thực thi mßt ch°¢ng trình trong .NET framework có thể tóm tắt nh° sau: - Ch°¢ng trình nguãn tr°ác h¿t sẽ đ°ÿc biên dßch và đóng gói thành mßt khái gái là assembly. Khái này sẽ chąa các mã lánh ngôn ngă trung gian và các metadata mô tÁ thông tin c¿n thi¿t cho sự ho¿t đßng căa khái.
- Mỗi khi có yêu c¿u thực thi assembly nói trên, CLR sẽ chuyển đái mã lánh ngôn ngă trung gian trong assembly thành mã lánh t°¢ng thích vái CPU cā thể tr°ác khi có thể thực thi.2 – Chāc năng cÿa CLR Nh° vÁy, lÁp trình viên có thể sā dāng bất cą ngôn ngă nào để phát triển ąng dāng trên .NET framework, mißn là ngôn ngă đó có hỗ trÿ. ĐiÁu đặc biát là, do sā dāng chung há tháng kiểu dă liáu, nên tính năng liên thông giăa các ngôn ngă trên .NET framework là rất cao.2 Há thßng kiểu dă liáu chung CTS (Common Type System) CTS cung cấp mßt tÁp c¢ sá các kiểu dă liáu cho mỗi ngôn ngă ho¿t đßng trên. Ngoài ra, nó đặc tÁ cách khai báo và t¿o các kiểu dă liáu tùy bi¿n, cách quÁn lý vòng đßi căa mßt thể hián căa nhăng kiểu dă liáu này. Hình d°ái đây mô tÁ cách tå chąc CTS căa .3 – Các kiểu dữ liệu cơ sở cÿa CTS Mái kiểu dă liáu trong .NET đÁu đ°ÿc k¿ thÿa tÿ kiểu dă liáu System.
Các kiểu dă liáu đ°ÿc chia làm hai lo¿i: kiểu tham chi¿u và kiểu giá trß. Kiểu dă liáu tham chi¿u đ°ÿc xā lý trong mßt vùng nhá đặc biát gái là heap thông qua các con trß. Kiểu dă liáu giá trß đ°ÿc tham chi¿u trực ti¿p trong stack căa ch°¢ng trình.3 Assemblies Tất cÁ các mã đ°ÿc quÁn lý thực thi trong .NET đÁu phÁi đ°ÿc chąa trong mßt assembly. Mßt assembly đ°ÿc xem nh° là mßt file EXE hoặc DLL.
Mßt asembly có thể chąa mßt tÁp hÿp gãm mßt hay nhiÁu file chąa ph¿n mã lánh hoặc tài nguyên (nh° Ánh hoặc dă liáu XML). Mßt assembly đ°ÿc t¿o ra khi trình biên dßch t°¢ng thích vái .NET chuyển mßt file chąa mã nguãn thành mßt file DLL hoặc EXE. Nh° minh háa trong hình 1.4, mßt assembly chąa mßt manifest, metadata, và ngôn ngă trung gian sinh bái trình biên dßch cā thể. Manifest: Mỗi assembly phÁi có mßt file chąa mßt manifest.
Manifest này là mßt tÁp hÿp các bÁng chąa các metadata trong đó liát kê tên căa tất cÁ các file trong assembly, tham 10 chi¿u đ¿n các assembly bên ngoài, và các thông tin nh° tên, phiên bÁn để đßnh danh assembly đó.