Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 220 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
220
Dung lượng
2,9 MB
Nội dung
QTM-CĐ-MĐ31-LTTQ TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Lịch sử phát triển Tin học ln gắn liền với việc tìm kiếm phương pháp lập trình để giúp cho người sử dụng triển khai ứng dụng cách dễ dàng, nhanh chóng hiệu Như biết, loại máy tính (sử dụng loại CPU – Central Processing Unit xác định) hiểu thực trực tiếp lệnh chương trình theo loại ngôn ngữ dành riêng gọi ngôn ngữ máy Tuy nhiên, triển khai ứng dụng thực tế mà phải viết chương trình trực tiếp ngơn ngữ máy phức tạp, địi hỏi thời gian công sức lớn, nhiều khơng thể thực Vì vậy, người ta tìm cách xây dựng ngơn ngữ lập trình riêng gần với ngôn ngữ tự nhiên, thuận lợi cho việc triển khai ứng dụng Khi thực chương trình ngơn ngữ phải qua bước dịch chương trình sang ngơn ngữ máy để thực Từ trước đến có nhiều ngơn ngữ lập trình đời phục vụ đắc lực cho việc triển khai ứng dụng máy tính Trong giai đoạn đầu, ngơn ngữ lập trình dễ sử dụng ngơn ngữ máy khó với lập trình viên chưa đủ mạnh để dễ dàng triển khai thuật toán Chương trình chưa có tính cấu trúc chặt chẽ mặt liệu tổ chức chương trình Vì vậy, việc triển khai ứng dụng thực tế ngơn ngữ lập trình khó khăn Giai đoạn thời kỳ ngôn ngữ lập trình có cấu trúc Các ngơn ngữ lập trình có đặc điểm có tính cấu trúc chặt chẽ mặt liệu tổ chức chương trình Một loạt ngơn ngữ lập trình có cấu trúc đời dược sử dụng rộng rãi như: PASCAL, C, BASIC Giai đoạn thời kỳ lập trình hướng đối tượng phương pháp lập trình có bước biến đổi mạnh Trong ngơn ngữ lập trình có cấu trúc ứng dụng bao gồm hai thành phần riêng liệu chương trình Tuy chúng có quan hệ chặt chẽ hai đối tượng riêng biệt Trong phương pháp lập trình hướng đối tượng đối tượng lập trình bao hàm liệu phương thức hành động liệu Vì vậy, việc lập trình đơn giản mang tính kế thừa cao, tiết kiệm thời gian lập trình Tuy nhiên, với phương pháp lập trình địi hỏi lập trình viên phải nhớ nhiều câu lệnh với lệnh có cú pháp tác dụng riêng, viết chương trình phải tự lắp nối lệnh để có chương trình giải tốn riêng biệt Trong xu hướng phát triển mạnh mẽ tin học, số người sử dụng máy tính tăng lên nhanh máy tính sử dụng hầu hết lĩnh vực đời sống nên đòi hỏi ngơn ngữ lập trình phải đơn giản, dễ sử dụng mang tính đại chúng cao Chính phương pháp lập trình trực quan đời Đặc điểm ngơn ngữ lập trình trực quan dễ sử dụng, triển khai ứng dụng cách nhanh chóng Đặc điểm bật phương pháp lập trình trực quan là: - Cho phép xây dựng chương trình theo hướng kiện (Event-Driven Programming, nghĩa chương trình ứng dụng viết theo kiểu đáp ứng dựa theo tình xảy lúc thực chương trình Tình bao gồm người sử dụng ấn phím tương ứng, chọn lựa nút lệnh gọi lệnh từ ứng dụng khác chạy song song lúc - Người lập trình trực tiếp tạo khung giao diện (interface), ứng dụng thông qua thao tác hình dựa vào đối tượng (ojbect) hộp hội thoại nút điều khiển (control button), đối tượng mang thuộc tính (properties) riêng biệt như: màu sắc, Font chữ mà ta cần chọn lựa danh sách cho sẵn - Khi dùng ngơn ngữ lập trình trực quan ta phải tự viết lệnh, tổ chức chương trình cách rắc rối mà cần khai báo việc cần làm tình xuất - Máy tính dựa vào phần thiết kế khai báo lập trình viên để tự động tạo lập chương trình Như với kỹ thuật lập trình trực quan, lập trình viên giống nhà thiết kế, tổ chức để tạo biểu mẫu, đề nghị công việc cần thực máy tính dựa vào để xây dựng chương trình Hiện ngơn ngữ lập trình, hệ quản trị sở liệu theo hướng trực quan thường dùng như: Visual Basic, Visual Foxpro, Visual C, Delphi, C Sharp Đồng thời công tác đào tạo, kỹ thực hành đóng vai trị quan trọng nhằm giúp em Học sinh sinh viên có công cụ học tập cụ thể sở tảng vững lý thuyết kỹ vững vàng, giáo trình lập trình trực quan cơng cụ Cuốn sách viết dựa đề cương mơ đun “Lập tình trực quan” nghề Quản Trị Mạng Máy Tính, Trường Cao đẳng Nội dung sách gồm bài: thứ giới thiệu tổng quan ngơn ngữ lập trình trực quan; giới thiệu lập trình trực quan với Visual Studio 2015, công cụ mạnh để phát triển phần mềm quản lý; Từ đến tập trung giới thiệu cách thức lập trình với ngơn ngữ C#, ngơn ngữ lập trình trực quan đại cung cấp cho người sử dụng công cụ mạnh để thiết kế giao diện, kết nối đến sở liệu, xây dựng hiệu ứng đồ hoạ , thứ áp dụng phần học để xây dựng ứng dụng thực tế Hy vọng sách giúp ích nhiều cho sinh viên trường đào tạo nghề, sở đào tạo lập trình viên; lập trình viên việc tìm hiểu, khám phá ngơn ngữ lập trình trực quan Đặc biệt, sách giúp học sinh sinh viên học nghề làm chủ C# để phát triển ứng dụng sở tự nghiên cứu để làm chủ ngơn ngữ lập trình trực quan khác Mặc dù cố gắng việc biên soạn giáo trình này, mong đóng góp đồng nghiệp, em học sinh sinh viên để ngày giáo trình hồn thiện Cần Thơ, ngày… tháng… năm 2018 Tham gia biên soạn Chủ biên: Lư Thục Oanh MỤC LỤC TRANG LỜI GIỚI THIỆU MỤC LỤC BÀI 1: TỔNG QUAN VỀ C# TRONG VISUAL STUDIO 2015 14 I TỔNG QUAN VỀ NET FRAMEWORK 14 I.1 Thành phần NET Framework 15 I.2 Những đặc điểm NET Framework 16 II GIỚI THIỆU VISUAL STUDIO 2015 18 II.1 Phiên Visual Studio 2015 18 II.1.1 Visual Studio Professional 2015 18 II.1.2 Visual Studio Enterprise 2015 18 II.2 Làm việc với Visual Studio 2015 18 III CÁC LOẠI ỨNG DỤNG DÙNG C# 20 III.1 Ứng dụng Windows Form 21 III.2 Ứng dụng hình bàn phím 21 III.3 Dịch vụ hệ điều hành 21 III.4 Thư viện 21 III.5 Điều khiển người sử dụng định nghĩa 21 III.6 Ứng dụng báo cáo 21 III.7 Ứng dụng SQL Server 22 III.8 Ứng dụng PDA Mobile 22 III.9 Ứng dụng đóng gói triển khai 22 III.10 Tạo Solution 22 IV CẤU TRÚC CHƯƠNG TRÌNH C# 22 IV.1 Cấu trúc chương trình 22 IV.2 Tổ chức Project 23 IV.2.1 Nút Properties 23 IV.2.2 Nút References 23 IV.2.3 Nút đối tượng có giao tiếp 23 IV.2.4 Nút đối tượng khơng có giao tiếp 23 V CẤU TRÚC THƯ MỤC CỦA CHƯƠNG TRÌNH C# 2015 24 BÀI 2: LÀM VIỆC VỚI VISUAL STUDIO 2015 27 I CỬA SỔ SOLUTION 27 I.2 Thêm Project vào Solution 27 I.3 Vị trí sổ Solution Explorer 27 I.4 Tạo Foder Solution 27 I.5 Project khởi động 27 I.6 Biểu đồ lớp 27 I.7 Nội dung tập tin SLN 27 II CỬA SỔ THUỘC TÍNH CỦA PROJECT 28 II.1 Ngăn Application 28 II.1.1 Assembly name 28 II.1.2 Output type 28 II.1.3 Startup object .28 II.1.4 Resouces .28 II.1.5 Assembly Information 28 II.2 Resources 28 III CỬA SỔ PROPERTIES 28 IV CỦA SỔ OPTION 28 V HỘP CÔNG CỤ .28 V.1 Nhóm điều khiển Cơmmn 28 V.2 Nhóm điều khiển Containers 28 V.3 Nhóm điều khiển Menus Toolbars 28 V.4 Nhóm điều khiển data 28 V.5 Nhóm điều khiển Components 28 V.6 Nhóm điều khiển Printing 28 V.7 Nhóm điều khiển Dialog 28 V.8 Nhóm điều khiển Crytal Reports 28 VI CỬA SỔ DANH SÁCH ĐỔI TƯỢNG 28 VII THỰC ĐƠN REFACTOR 28 VII.1 Extrac Method 28 VII.2 Encapsulate Field 28 VII.3 Extract Interface 28 VII.4 Reorder Parameters 28 VII.5 Remove Parameters 28 VII.6 Rename 28 VII.7 Promote Local Variable to Parameters 28 BÀI 3: CHƯƠNG TRÌNH C# 2015 31 I BIÊN DỊCH VÀ THỰC THI CHƯƠNG TRÌNH 31 I.1 Biên dịch thực thi C++, Visual Basic 6.0 31 I.2 Biên dịch thực thi chương trình NET 32 I.2.1 MSIL 32 1.2.2 CLR 32 I.3 Vai trò MSIL 33 I.4 Biên dịch chương trình C# 34 I.4.2 Từ tiện ích CSC 37 I Thực thi chương trình C# 38 II GIẢI THÍCH CÁC KHƠNG GIAN TÊN 38 II.1 Không gian tên 38 II.2 Một số không gian tên thường sử dụng 42 III CÁC DẠNG CỦA PHƯƠNG THỨC MAIN 42 IV ĐỊNH DẠNG KẾT QUẢ CỦA CỬA SỔ COMMAND PROMPT 43 V CHÚ THÍCH TRONG CHƯƠNG TRÌNH C# 46 VI KHAI BÁO CHỈ THỊ REGION 47 BÀI 4: NỀN TẢNG CỦA C# 50 I KIỂU DỮ LIỆU TRONG C# 51 I.1 Kiểu VALUE 52 I.1.1 Kiểu số 52 I.2 Kiểu REFERENCE 54 I.3 Kiểu NULLABLE 56 II KHAI BÁO BIẾN 56 II.1 Khai báo biến 57 II.2 Gán giá trị cho biến 57 II.3 Giá trị mặc định biến 57 II.4 Giá trị mặc định biến kiểu Nullable 58 II.5 Ký tự đặc biệt giá trị dạng chuỗi 58 II.6 Tầm vực biến 58 III HẰNG VÀ ENUM 58 III.1 Hằng 59 III.2 Kiểu liệt kê (Enum) 60 IV PHÉP TOÁN VÀ CHUYỂN ĐỔI KIỂU DỮ LIỆU 61 IV.1 Phép toán 61 IV.2 Chuyển đổi kiểu liệu 64 IV.3 BOXING VÀ UNBOXING 65 V TÊN, TỪ KHỐ VÀ CHÚ THÍCH 66 V.1 Tên 66 V.2 Từ khóa .66 V.3 Chú thích 66 VI CÂU LỆNH TRONG C# 66 VI.1 Nhập xuất liệu 67 VI.2 Cấu trúc lựa chọn 68 VI.3 Cấu trúc lặp 69 VI.3 Kiểm soát ngoại lệ 70 VI.4 Mảng 81 BÀI 5: CÁC ĐỐI TƯỢNG ĐIỀU KHIỂN CỦA C# 86 I GIỚI THIỆU 86 II CÁC THÀNH PHẦN CƠ BẢN TRÊN CỬA SỔ WINDOWS FORM 89 II.1 Cửa sổ Form 89 II.2 Cửa sổ thuộc tính (Properties) 90 II.3 Cửa sổ Solution Explorer 90 II.4 Hộp công cụ Toolbox 90 III MỘT SỐ CÔNG CỤ CƠ BẢN TRÊN HỘP TOOLBOX 91 III.1 TextBox 91 III.2 Label 93 III.3 Các nút lệnh 93 III.3.1 Button 94 III.3.2 RadioButton 95 III.3.3 CheckBox 96 III.4 ListBox 98 III.5 CheckedListBox 100 III.6 ComboBox 101 III.7 ScrollBar 103 III.8 Trackbar 104 III.9 GroupBox 105 III.10 Timer 105 III.11 MonthCalendar 106 IV FORM VÀ MDI FORM 107 IV.1 Giới thiệu 107 IV.2 Tạo MDI Form 107 V MENU 108 VI RICH TEXTBOX 110 VII FILE DIALOG 110 VII.1 Điều khiển OpenFileDialog SaveFileDialog 111 VII.2 PrintDialog 112 VII.3 ColorDialog 112 VII.4 FontDialog 113 BÀI 6: FILE VÀ REGISTRY OPERATION 122 I QUẢN LÝ TẬP TIN HỆ THỐNG 122 I.1 Các lớp NET thể File Folder 123 I.1.1 Các thuộc tính lớp FileSystemInfo: .123 I.1.2.Tạo đối tượng DirectoryInfo .125 I.2 Lớp Path 125 II DI CHUYỂN, SAO CHÉP, HUỶ FILE 130 III ĐỌC VÀ GHI FILE 135 III.1.Streams 135 III.2 Làm việc với Binary Files 136 III.3 Làm việc với BufferedStream 137 III.4 Làm việc với tập tin văn 137 IV ĐỌC VÀ GHI VÀO REGISTRY 142 IV.1 Registry 142 IV.2 .NET Registry Classes 144 BÀI 7: ĐỒ HOẠ VÀ MỘT SỐ XỬ LÝ NÂNG CAO 147 I GIỚI THIỆU VỀ LỚP GRAPHICS 148 II KHỞI TẠO CÁC ĐỐI TƯỢNG GRAPHIC 148 III CÁC ĐỐI TƯỢNG GRAPHIC .149 III.1 Pen 150 III.2 Brush 151 III.3 Font 154 III.4 Color 156 III.5 Giới thiệu Bitmap 158 IV CÁC CHỦ ĐỀ NÂNG CAO TRONG GDI+ .159 IV.1 Antialiasing 160 IV.2 Kỹ thuật Double Buffering 161 BÀI 8: TRUY XUẤT DỮ LIỆU VỚI ADO.NET 163 I GIỚI THIỆU VỀ LẬP TRÌNH CƠ SỞ DỮ LIỆU 163 I.1 Giới thiệu ADO.NET 163 I.2 Các lớp dùng chung 164 I.3 Các lớp sở liệu chuyên biệt 165 II ĐỐI TƯỢNG SQL 166 II.2 Không gian tên Microsoft.SqlServer 166 II.3 Làm việc với Microsoft.SqlServer.Management 166 II.4 Thư viện SqlServer.Management 166 II.5 Thao tác liệu 166 III SỬ DỤNG CÁC DATABASE CONNECTION 166 III.1 Sử dụng hiệu Connection 167 III.2 Tùy chọn - try/catch/finally 167 III.3 Tùy chọn hai - Sử dụng khối câu lệnh 168 III.4 Các Transaction (giao dịch) 169 IV.COMMANDS 171 IV.1 Executing Commands 171 IV.1.1 ExecuteNonQuery() 172 IV.1.2 ExecuteReader() 172 IV.1.3 ExecuteScalar() 173 IV.1.4 ExecuteXmlReader() (SqlClient Provider Only) 174 IV.2.Gọi Stored Procedure 175 IV.2.1 Gọi Stored Procedure không trả lại kết 176 IV.2.2 Gọi Stored Procedure trả tham số trả 177 V TRUY CẬP NHANH CƠ SỞ DỮ LIỆU VỚI DATA READER 178 VI MANAGING DATA VÀ RELATIONSHIPS: THE DATASET 181 VI.1 Data Tables 182 VI.1.1 Data Columns 183 VI.1.2 Data Rows 184 VI.1.3 Schema Generation 187 VI.1.4 Các quan hệ liệu 189 VI.1.5 Ràng buộc liệu 190 VII CÁC SƠ ĐỒ XML 193 VIII.TẠO MỘT DATASET 199 VIII.1.Tạo DataSet dùng DataAdapter 199 10 DataSet có phương thưc GetChanges() để giải yêu cầu Phương thức đơn giản thực thi loạt công việc trả DataSet với dòng cập nhật dataset nguồn Đây ý tưởng truyền liệu tầng, tập nhở liệu truyền Ví dụ sau cách tạo "changes" DataSet: DataSet source = {some dataset}; DataSet dest = source.GetChanges(); Bên lớp vỏ bọc nhiều thứ hấp dẫn Có hai tải phương thức GetChanges() Một tải lấy giá trị DataRowState, trả trạng thái tương ứng GetChanges() đơn giản gọi GetChanges(Deleted | Modified | Added), kiểm tra để bảo đảm có vài thay đổi cách gọi HasChanges() Nếu khơng có thay đổi nào, giá trị trả Tiếp theo chép DataSet Trước tiên, DataSet bỏ qua ràng buộc (EnforceConstraints = false), sau dịng thay đổi chép vào DataSet Như bạn có DataSet chứa thay đổi, sau bạn truyền liệu qua tầng để sử lí Khi liệu cập nhật vào sở liệu, "changes" DataSet trả cho trình gọi (trong ví dụ này, vài tham số xuât từ stored procedure cập nhật cột) Những thay đổi trộn vào DataSet cách dùng phương thức Merge() Tiến trình mơ tả sau: Hình 8.10 Tiến trình X.2 Tạo khố với SQL Server Stored procedure RegionInsert ví dụ phần trước tạo giá trí khóa để chèn vào sở liệu Phương thức tạo khố cịn thơ sơ khơng linh động, ứng dụng thực tế cần dùng đến kĩ thật tạo khóa cao cấp Đầu tiên định nghĩa định dạng cột đơn giản, trả giá trị @@IDENTITY từ stored procedure Stored procedure sử dụng bảng Categories sở liệu Northwind Gõ stored procedure vào SQL Query Analyzer, chạy the file StoredProcs.sql thư mục 13_SQLServerKeys: CREATE PROCEDURE CategoryInsert(@CategoryName NVARCHAR(15), @Description NTEXT, @CategoryID INTEGER OUTPUT) AS SET NOCOUNT OFF INSERT INTO Categories (CategoryName, Description) VALUES(@CategoryName, @Description) SELECT @CategoryID = @@IDENTITY GO 206 Nó chèn dòng vào bảng Category, trả khóa cho trình gọi Bạn kiểm tra procedure cách gõ dòng SQL sau vào Query Analyzer: DECLARE @CatID int; EXECUTE CategoryInsert 'Pasties' , 'Heaven Sent Food' , @CatID OUTPUT; PRINT @CatID; Khi thực thi bó lệnh, chèn mọt dịng vào bảng Categories, trả nhận dạng dòng này, sau biểu diễn cho người dùng Giả sử sau vài tháng sử dụng, muốn có sổ theo dõi đơn giản, để báo cáo cập nhật sửa đổi category name Bạn định nghĩa bảng sau, để giá trị cũ category: Hình 8.11 Tạo mối quan hệ Mã sẵn có StoredProcs.sql Cột AuditID định nghĩa cột IDENTITY Sau bạn cấu trúc mọt cặp trigger để báo cáo thay đổi trường CategoryName: CREATE TRIGGER CategoryInsertTrigger ON Categories AFTER UPDATE AS INSERT INTO CategoryAudit(CategoryID , OldName , NewName ) SELECT old.CategoryID, old.CategoryName, new.CategoryName FROM Deleted AS old, Categories AS new WHERE old.CategoryID = new.CategoryID; GO Bạn phải dùng Oracle stored procedure, SQL Server không hỗ trợ nội dung OLD NEW dịng, thay chèn trigger có bảng nhớ gọi Inserted, để xóa cập nhật, dịng cũ tồn bảng Deleted Trigger nhận CategoryID cho cột giả lưu giá trị cũ cột CategoryName Giờ đây, bạn gọi stored procedure để chèn CategoryID mới, bạn nhận mọt giá trị nhận dạng; Dĩ nhiên, khơng cịn giá trị nhận dòng chèn vào bảng Categories, giá trị tạo bảng CategoryAudit Ouch! Để xem vấn đề, mở SQL Server Enterprise manager, xem nội dung bảng Categories table 207 Hình 8.12 Xem nội dung bảng Categories Bảng liệt kê tất categories tơi có thể sở liệu Giá trị nhận dạng cho bảng Categories 21, chèn dòng cách thực thi mã sau đây, xem trả ID nào: DECLARE @CatID int; EXECUTE CategoryInsert 'Pasties' , 'Heaven Sent Food' , @CatID OUTPUT; PRINT @CatID; Giá trị trả máy 17 Khi xem bảng CategoryAudit, nhận nhận dạng dịng chèn bảng audit, khơng phải category Hình 8.13 Xem bảng Categories Đó @@IDENTITY trả giá trị nhận dạng cuối Có hai nhận dạng bạn sử dụng thay cho @@IDENTITY, chúng giải vấn đề Đầu tiên SCOPE_IDENTITY(), trả giá trị nhận dạng cuối tầm vực SQL Server định nghĩa tầm vực như stored procedure, trigger, hàm Nếu thêm câu lệnh INSERT khác vào stored procedure, bạn nhận giá trị không mong chờ IDENT_CURRENT() trả giá trị nhận dạng cuối phát bảng tầm vực nào, trường hợp này, hai người dùng truy cập SQL Server lúc, nhận giá trị người khác Chỉ có cách quản lí thủ cơng, cách dùng cột IDENTITY SQL Server X.3 Qui tắt đặt tên Trong nhiều năm làm việc với ứng dụng sở liệu, Tôi nhận vài giới thiệu cho cách đặt tên để tiện cho việc dùng chung Tơi biết khơng liên quan đến NET, qui tắt hữu ích đặt tên Bỏ qua phần bạn có cách đặt tên riêng Database Tables Ln số – Product tốt Products Nó tốt mặt ngữ pháp nói "The Product table contains products" "The Products table contains products" Hãy xem sở liệu Northwind để thấy nhận xét Chấp nhận vài qui tắt đặt tên cho cột bảng – chẳng hạn _ID cho khóa bảng (Ở khóa cột), tên cột phải tên thân thiện, giải thích chứa đựng thơng tin cột Một 208 qui tắc đặt tên tốt cho bạn nhìn bao quát vè khả trường sở liệu Database Columns Dùng danh từ số tốt danh từ số nhiều Bất kì cột liên kết với bảng khác nên đặt tên với khóa bảng Chẳng hạn, liên kết với bảng Product Product_ID, đến bảng Sample Sample_ID Không phải lúc vậy, chẳng hạn bảng có nhiều liên kết với bảng khác Trong trường hợp tùy bạn sử dụng Các trường Date nên kết thúc _On, chẳng hạn Modified_On, Created_On Như dễ hiểu Các trường báo cao nêu kết thúc _By, chẳng hạn Modified_By hay Created_By Constraints Nếu có thể, nên bao gồm tên bảng cột ràng buộc, chẳng hạn CK__ Ví dụ CK_PERSON_SEX để kiểm tra ràng buộc cột SEX bảng PERSON Một khóa ngoại FK_Product_Supplier_ID, khóa ngoại product supplier Chỉ kiểu ràng buộc tiếp đầu ngữ, chẳng hạn CK cho kiểm tra ràng buộc FK cho khóa ngoại Chẳng hạn CK_PERSON_AGE_GT0 cho ràng buộc cột age khai báo age phải lớn zero Nếu bạn muốn rút gọn tên ràng buộc, nên làm điều tên bảng tên cột Khi bạn có ràng buộc vi phạm, dễ dàng nhận lỗi xảy bảng nào, không dễ kiểm tra xem trường sinh lỗi Oracle giới hạn tên 30-kí tự Stored Procedures Nhiều nhà phát triển SQL Server nhận thấy dùng tiếp đầu ngữ 'sp_' qui tắc tốt để đặt tên cho stored procedure SQL Server dùng tiếp đầu ngữ 'sp_' cho tất stored procedure hệ thống Vì vậy, xảy tình trạng xung đột tên stored procedure bạn bắt đầu 'sp_' 'sp_widget' giống với stored procedure chuẩn SQL Server Khi xem xét stored procedure, SQL Server sửa procedure với tiếp đầu ngữ 'sp_' Nêu bạn dùng tiếp đầu ngữ này, thực thi, SQL Server xem tầm vực tại, nhảy đến sở liệu chủ để tìm stored procedure Nếu có tồn có lỗi phát sinh sớm X.4 Performance Bộ managed provider NET có vài giới hạn – bạn chọn OleDb SqlClient; OleDb cho phép kết nối với nguồn liệu OLE DB driver (chẳng hạn Oracle), cịn SqlClient trình cung câp dùng riêng cho SqlServer Trình cung cấp SqlClient viết hồn tồn mã có quản, sử dụng vài lớp để kết nối sở liệu Trình cung cấp viết gói TDS (Tabular Data Stream) trực tiếp từ SQL Server, chất nhanh OleDb provider, duyệt qua lớp trước tác động vào sở liệu 209 Để kiểm tra điều đó, chạy mã sau sở liệu, khác biệt chỗ sử dụng SqlClient managed provider ADO provider: SqlConnection conn = new SqlConnection(Login.Connection); conn.Open(); SqlCommand cmd = new SqlCommand ( "update tempdata set AValue=1 Where ID=1" , conn); DateTime initial, elapsed ; initial = DateTime.Now ; for(int i = 0; i < iterations; i++) cmd.ExecuteNonQuery(); elapsed = DateTime.Now ; conn.Close(); OLE DB thường sử dụng OleDbCommand SqlCommand Tôi tạo bảng sở liệu nhỏ với hai côtj đây, điền vào dịng đơn: Câu lệnh SQL sử dụng câu lệnh UPDATE đơn giản: UPDATE TempData SET AValue = WHERE ID = SQL đơn giản provider Kết tính giây cho liệt kê bảng sau: Provider OleDb Sql 100 0.109 0.078 1000 0.798 0.626 10000 7.95 6.23 50000 39.11 29.27 Bảng 8.12 Provider Nếu bạn hướng vào SQL Server dĩ nhiên bạn chọn Sql provider Trong thực tế, bạn sử dụng sở liệu khác bạn sử dụng OleDb provider Microsoft tạo giao thức tri cập chung cho sở liệu khác System.Data.Các lớp chung dùng sở liệu thích hợp vào thời gian chạy Nó lớp bọc OleDb Sql, nhà cung cấp sở liệu khác viết trình quản lí cho sản phẩm họ, bạn dùng ADO cho provider với thay đổi mã Ví dụ truy cập sở liệu NET, "Scientific Data Center" "Data-Centric NET Programming with C#" (Wrox Press, ISBN 1-861005-92-x) giải thích việc sử dụng C# để truy cập sở liệu MySQL CÂU HỎI VÀ BÀI TẬP Câu 1: Thực kết nối đến sở liệu có sẵn Câu 2: Thực đọc dòng liệu table sở liệu đưa lên đối tượng hiển thị (chẵn hạn combobox) Câu 3: Kết nối truy xuất liệu với đối tượng datagridview 210 BÀI 9: XÂY DỰNG ỨNG DỤNG TỔNG HỢP Mã bài: MĐ31-09 Giới thiệu: - Phân tích tổng hợp tốn thực tế - Vận dụng ngơn ngữ lập trình C# để xây dựng ứng dụng vào thực tế - Gỡ rối chương trình xây dựng ngơn ngữ lập trình C# Các vấn đề đề cập Xây dựng chương trình liên quan đến Cấu trúc liệu Xây dựng chương trình liên quan đến sở liệu việc quản lý thông tin, CSDL Xây dựng chương trình liên quan đến quản trị hệ thống mạng Xây dựng chương trình liên quan đến đồ hoạ, xử lý ảnh, xử lý đa phương tiện Xây dựng chương trình liên quan đến quản lý File Mục tiêu: Sau học xong này, học viên có khả năng: - Xác định yêu cầu ứng dụng; - Phân tích tốn thực tế; - Xây dựng phần mềm ứng dụng dựa ngơn ngữ lập trình C# - Tổ chức làm việc nhóm; - Tự phát triển cơng nghệ lập trình; - Thực thao tác an toàn với máy tính; Bài 1: Xây dựng chương trình ứng dụng “Xổ số điện toán” Yêu cầu: - Giao diện đẹp, dễ sử dụng - Đảm bảo tính khách quan quay số - Có lựa chọn, quay giải (với thời gian quy định xuất số), quay lần, giá vé, cấu giải thưởng, trị giá giải thưởng…) Bài 2: Xây dựng chương trình ứng dụng “máy tính tay” Yêu cầu: - Giao diện đẹp, dễ sử dụng - Thực chức tính tốn tối thiểu bản, như: cộng, trừ, nhân, chia, phần trăm, lũy thừa, nhớ Chú ý tam khảo giao diện ứng dụng calc windows) Bài 3: Xây dựng chương trình ứng dụng “MiniWord” (phần mềm soạn thảo văn bản) Yêu cầu: - Giao diện đẹp, dễ sử dụng - Đảm bảo sử dụng để soạn văn bản, gồm: + Hệ thống thực đơn + Hệ thống cơng cụ + Hỗ trợ phím nóng Bài 4: Xây dựng chương trình ứng dụng “Quản lý điểm” Yêu cầu: - Giao diện đẹp, dễ sử dụng - Cơ sở liệu MS Access SQL server - Đảm bảo chức năng, gồm; + Đăng ký, đăng nhập + Nhập điểm, xem điểm + Lọc theo điều kiện: sinh viên chưa thi, thi thiếu điểm… + Tìm kiếm theo mã sinh viên, tên sinh viên theo khoa, lớp 211 YÊU CẦU VỀ ĐÁNH GIÁ HOÀN THÀNH MÔN HỌC/MÔ ĐUN Nội dung - Về kiến thức: Được đánh giá qua kiểm tra viết, trắc nghiệm đạt yêu cầu sau: + Cách thức lập trình trực quan + Nắm bắt số khái niệm câu lệnh, từ khoá, cú pháp, đối tượng, kiện để xây dựng số ứng dụng lập trình trực quan + Có khả phân tích xây dựng ứng dụng cho hệ thống dựa ngơn ngữ có khả lập trình NET - Về kỹ năng: Đánh giá kỹ thực hành sinh viên thực hành Lập trình trực quan đạt yêu cầu sau: + Sử dụng thành thạo cơng cụ lập trình Microsoft (C# để lập trình trực quan + Thiết kế, lập trình ứng dụng thơng dụng để phục vụ công việc quản trị mạng ứng dụng thực tế - Về thái độ: cẩn thận, tự giác, xác - Thang điểm đánh giá tổng hợp: thang điểm 10 Tiêu chí đánh giá Hệ số Kiến thức 0,3 Kỹ 0,5 Thái độ 0,2 Cộng: Bảng 9.1 tiêu chí đánh giá Phương pháp -Hình thức kiểm tra hết mơđun chọn hình thức sau: + Đối với kiến thức: theo hình thức viết, vấn đáp, trắc nghiệm + Đối với kỹ năng: đánh giá kỹ thực hành sinh viên thông qua khả thiết kế, lập trình ứng dụng + Thái độ: có thái độ nghiêm túc thực hành, Cẩn thận, thao tác nhanh chuẩn xác, tự giác học tập -Thời gian kiểm tra: + Kiến thức: không 150 phút + Kỹ năng: không 212 CÁC THUẬT NGỮ CHUYÊN MÔN Số TT 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 Thuật ngữ Giải thích Abstract Access Accessibility Account Administrator Algorithm API [Application Programming Interface] Application Application domain Argument Arithmetic Array Binary Block Breakpoint Browser Buffer Built-in Cache Caching Class Client Clone [v] CLR [Common Language Runtime] Code Collection Column Command Communication Compare Compatibility Compile Compiler Component Configuration Connection Constant Context Context-sensitive help 213 Trừu tượng Truy xuất Khả truy xuất Tài khoản Người quản trị Giải thuật Giao diện lập trình ứng dụng Ứng dụng Miền ứng dụng Đối số Số học Mảng Nhị phân Khối Điểm dừng Trình duyệt Bộ đệm Nội Kho chứa (truy xuất nhanh) Cơ chế lưu giữ Lớp Trình khách Sao chép Bộ thực thi ngôn ngữ chung Mã lệnh Tập hợp Cột Lệnh Sự giao tiếp So sánh Tính tương thích Biên dịch Trình biên dịch Thành phần Cấu hình Kết nối Hằng Ngữ cảnh Trợ giúp cảm-ngữ-cảnh 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 Điều kiểm Chuyển đổi Tùy biến Dữ liệu Kỹ Database thuật kết liệu Gỡ DebuggerTrình rối gỡ rối Mặc Delegate định Triển Destructor khai Thiết Derive bị Kỹ Database thuật kết liệu Từ điển Chữ ký số Chỉ thị Thư mục Hủy Có tính phân tán Tài liệu Miền Hiệu chỉnh Trình soạn thảo Sự đóng gói Mã hóa Phép mã hóa Mật hóa Sự mật hóa Khoản mục Kiểu liệt kê Mơi trường Lỗi Sự kiện Phương thức thụ lý kiện Nhật ký kiện Chứng Biệt lệ Phương thức thụ lý biệt lệ Sự hết hiệu lực Xuất Biểu thức Tính Trường Tập tin Bộ lọc Cờ Tính linh hoạt Biểu mẫu Control Convert Custom Data Data binding Debug Default Deploy Device Data binding Dictionary Digital signature Directive Directory Dispose Distributed Document Domain Edit Editor Encapsulation Encode Encoding Encrypt Encryption Entry Enumeration Environment Error Event Event hander Event log Evidence Exception Exception hander Expiration Export Expression Feature Field File Filter Flag Flexibility Form 214 Cơ sở liệu Ủy nhiệm hàm Phương thức h Dẫn xuất Cơ sở liệu 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 Format FTP [File Transfer Protocol] Function Functionality GAC [Global Assembly Cache] GC [Garbage Collector] Generalization Global Globalization Graphics Group GUI [Graphical User Interface] GUID [Globally Unique Identifier] Handle Hash Hash code Hashtable Help HTML [HyperText Markup Language] Hyperlink IDE [Integrated Development Environment] Identifier Imperson Impersonation Implement Implementation Import Index Indexer Inheritance Initialize Input Insert Install Instance Integration Interface Interoperability IP [Internet Protocol] Item JIT [just-in-time] Key Keyword Language 215 Định dạng Giao thức truyền file Hàm Chức Kho chứa gói kết hợp tồn cục Bộ thu gom rác Tính tổng qt hóa Tồn cục Sự tồn cầu hóa Đồ họa Nhóm Giao diện người dùng đồ họa Định danh toàn cục Mục quản Băm Mã băm Bảng băm Trợ giúp Ngôn ngữ đánh dấu siêu văn Siêu kiên kết Môi trường phát triển tích hợp Điện từ Giả nhận Sự giả nhận Hiện thực Bản thực Nhập Chỉ mục Bộ mục Sự thừa kế Khởi tạo Đầu vào / Dữ liệu nhập Chèn Cài đặt Thể Sự tích hợp Giao diện Khả liên tác Giao thức Internet Mục chọn Tức thời / Vừa lúc Khóa Từ khóa Ngơn ngữ 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 Chiều dài Thư viện Thời gian sống Liên kết Danh sách Trực kiện Nạp Cục Bản địa Sự địa hóa Chốt Mã thi hành chức Vòng lặp Được quản lý Sự quản lý Phép ánh xạ Thành viên Tư cách thành viên Bộ nhớ Trình đơn Thơng điệp Siêu ký tự Siêu liệu Phương thức Mơ hình Đơn thể Ngôn ngữ trung gian Length Library Lifetime Link List Literal Load Local Locale Localization Lock Logic Loop Managed Management Mapping Member Membership Memory Menu Message Metacharacter Metadata Method Model Module MSIL [Microsoft Intermediate Language] Multilingual Multithreading Native Namespace Network Node Object Object-oriented programming Operating system Operator Output Overload Override Parameter Password Path Pattern Đa ngơn ngữ Lập trình đa tiểu trình Ngun sinh Khơng gian tên Mạng Nút Đối tượng Lập trình hướng đối tượng Hệ điều hành Tốn tử Xuất / Kết xuất Bản nạp chồng Chép đè Thông số Mật Đường dẫn Kiểu mẫu 216 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 Hiệu Quyền Điểm ảnh Nền Con trỏ Chính sách Tính đa hình Kho dự trữ Cơ chế dự trữ Giao thức nhận mail Cổng Hậu tố Tiền tố Riêng Đặc quyền Thủ tục Tiến trình Bộ xử lý Dự án Thuộc tính Được bảo vệ Giao thức Công khai Truy vấn Hàng đợi Ngẫu nhiên Bảo mật dựa-trên-vai-trò Bản ghi / Mẩu tin Sự đệ quy Tham chiếu Cơ chế phản chiếu Đăng ký Biểu thức quy Mối quan hệ Tương đối Khả truy xuất từ xa Tài nguyên Khả tái sử dụng Vai trị Thường trình Hàng / Dịng Bộ thực thi Lược đồ / Khuôn Kịch Sự bảo mật Performance Permission Pixel Platform Pointer Policy Polymorphisme Pool Pooling POP3 [Post Office Protocol 3] Port Postfix Prefix Private Privilege Procedure Process Processor Project Property Protected Protocol Public Query Queue Random RBS [Role-Based Security] Record Recursion Reference Reflection Register Regular expression Relationship Relative Remotable Resource Reusability Role Routine Row Runtime Schema Script Security 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 Serialize Serializable Serialization Server Service Session Setting Shared Signature SMTP [Simple Mail Transfer Protocol] SOAP [Simple Object Access Protocol] Solution Specialization SQL [Structured Query Language] Stack State State | Stateless Statement Static Stored procedure Stream String Strong name Strong type Strongly-named Strongly-typed Structure Symmetric Synchronization Synchronous System System tray Table Tag Task Template Thread Thread-safe Throw Timestamp Tool Toolbox Transaction Type Type-safe 218 Tuần tự hóa Khả hóa Sự hóa Trình chủ Dịch vụ Phiên làm việc Thiết lập Được chia sẻ / Dùng chung Chữ ký Giao thức truyền mail đơn giản Giao thức truy xuất đối tượng đơn giản Giải pháp Tính chun hóa Ngơn ngữ truy vấn có cấu trúc Ngăn chồng Trạng thái Có trạng thái | Phi trạng thái Câu lệnh / Khai báo Tĩnh Thủ tục tồn trữ Dòng chảy Chuỗi Tên mạnh Kiểu mạnh Được định tên mạnh Được định kiểu mạnh Cấu trúc Đối xứng Sự đồng hóa Đồng Hệ thống Khay hệ thống Bảng Thẻ Tác vụ Khn mẫu Tiểu trình / Mạch trình / Tuyến đoạn An tồn tiểu trình Ném Tem thời gian Cơng cụ Hộp cơng cụ Phiên giao dịch Kiểu Antồn kiểu liệu 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 Unmanaged Update URI [Uniform Resource Identifier] URL [Uniform Resource Locator] User Utility Validation Value Variable Version Virtual Visible Visual Wildcard Window Worker Wrapper WSDL [Web Services Description Language] 281 XML [Extensible Markup Language] Bảng 9.2 Các thuật ngữ hay sử dụng 219 Không quản lý Cập nhật Bộ nhận dạng tài nguyên đồng dạng Bộ định vị tài nguyên đồng dạng Người dùng Tiện ích Sự xác nhận tính hợp lệ Giá trị Biến Phiên Ảo Khả kiến Trực quan Ký tự đại diện Cửa sổ Thợ Vỏ bọc Ngôn ngữ mô tả dịch vụ Web Ngôn ngữ đánh dấu mở rộng TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Lân, Lập Trình Cơ Sở Dữ Liệu Với C# - Mơ Hình Nhiều Tầng , Nhà xuất Lao động Xã hội, 2009 [2] Phạm Hữu Khang, Lập trình ứng dụng chuyên nghiệp SQL Server 2000, Nhà xuất Giáo dục, 2002 [3] Phạm Hữu Khang, C# 2015 (tập 1->6), Nhà xuất Lao động Xã hội, 2009 [4] Richard Blum, C# Network Programming, Joel Fugazzotto, 2003 [5] Fiach Reid, Network Programming in NET, Donegal-Ireland, 2004 [6] Website : http: //codeproject.com 220