MẪU ĐT -BG-01 BỘ CÔNG THƯƠNG BÀI GIẢNG LẬP TRÌNH WINDOWS Đối tượng: HSSV trình độ Đại học, Cao đẳng Ngành đào tạo: Công nghệ thông tin Lưu hành nội MỤC LỤC MỤC LỤC i LỜI GIỚI THIỆU v Chương 1: TỔNG QUAN VỀ LẬP TRÌNH .NET 1.1 Visual Studio.NET .NET Framework . 1.1.1 Giới thiệu . 1.1.2 Cấu trúc .NET Framework . 1.1.3 Một số đặc trưng Visual Studio .NET . 1.2 Cài đặt phần mềm Visual Studio 2005 . 1.2.1 Yêu cầu phần cứng . 1.2.2 Cài đặt: . 1.3 Visual Basic.NET 10 1.3.1 Các phương pháp lập trình VB.NET 10 1.3.2 Visual Basic.NET 11 1.3.3 Ví dụ - Hello, World . 12 1.3.4 Ví dụ - Hello, Windows 15 1.3.5 Ví dụ - Hello, Browser 16 Chương 2: NGÔN NGỮ LẬP TRÌNH VISUAL BASIC .NET 18 2.1 Các kiểu liệu đặc điểm . 18 2.1.1 Các kiểu liệu . 18 2.1.2 Đặc điểm kiểu liệu . 19 2.1.3 Biểu diễn giá trị . 24 2.2 Biến, 25 2.2.1 Biến tính chất 25 2.2.2 Khai báo khởi tạo giá trị cho biến . 26 2.2.3 Xác định phạm vi biến (tầm vực biến) 27 2.2.4 Hằng số ngẫu nhiên . 27 2.2.5 Chuyển đổi kiểu liệu 28 2.3 Toán tử . 29 2.3.1 Toán tử toán học 29 2.3.2 Toán tử nối chuỗi . 29 2.3.3 Toán tử gán 29 2.3.4 Toán tử so sánh 30 2.3.5 Toán tử luận lý bitwise 30 2.4 Các lệnh VB.NET . 31 2.4.1 Chú thích cách viết lệnh 31 2.4.2 Nhập/xuất liệu . 31 i 2.4.3 Các lệnh rẽ nhánh 36 2.4.4 Câu lệnh lặp . 39 2.5 Dữ liệu có cấu trúc 42 2.5.1 Enum 42 2.5.2 Mảng 44 2.5.3 Structure . 45 2.6 Xử lý lỗi 46 2.6.1 Phân loại lỗi . 46 2.6.2 Xử lý lỗi . 46 2.7 Một số thị VB.NET 49 2.7.1 Chỉ thị Option Explicit ON|OFF 49 2.7.2 Chỉ thị #Region … #End Region . 49 2.8 Thủ tục (Procedure) . 50 2.8.1 Khái niệm . 50 2.8.2 Tham số thủ tục . 50 2.8.3. Sub Procedure . 51 2.8.4 Function Procedure (Hàm) . 53 Chương 3: LỚP VÀ ĐỐI TƯỢNG TRONG VB.NET . 57 3.1 Tổng quan lập trình hướng đối tượng . 57 3.1.1 Tính trừu tượng 58 3.1.2 Tính bao bọc 58 3.1.3 Tính kế thừa . 58 3.1.4 Tính đa hình . 58 3.2 Lớp đối tượng 59 3.2.1 Khai báo lớp . 59 3.2.2 Đối tượng . 60 3.2.3 Phương thức . 60 3.2.4 Ví dụ thiết kế lớp . 60 3.3 Phương thức thiết lập phương thức phá hủy 61 3.3.1 Phương thức thiết lập . 61 3.3.2 Phương thức phá hủy . 64 3.4 Thuộc tính - Property . 64 3.5 Khai báo kiện (Event) 68 3.5.1 Phát sinh kiện . 68 3.5.2. Kết hợp kiện với xử lý kiện 69 3.6 Từ khóa Me, Mybase, MyClass 70 3.6.1. Me 70 ii 3.6.2. Mybase . 70 3.6.3 MyClass 71 Chương 4: CÁC ĐIỀU KHIỂN NGƯỜI DÙNG . 73 4.1 Tạo ứng dụng Windows Form . 73 4.1.1 Mở project . 73 4.1.2 Thao tác với project . 76 4.2 Biểu mẫu - Form . 76 4.2.1 Thuộc tính, biến cố phương thức biểu mẫu 77 4.2.2 Thao tác với form ứng dụng 79 4.2.3 Viết code cho biến cố form 79 4.2.4 Form MDI 81 4.3 Label, Textbox, Button . 81 4.3.1 Nhãn - Label 81 4.3.2 Ô nhập liệu - Textbox 82 4.3.3 Nút lệnh - Command Button 84 4.4 Check box, Radio Button . 86 4.4.1 Hộp kiểm - Check box . 86 4.4.2 Nút chọn - Radio button . 87 4.4.3 Ví dụ form sử dụng điều khiển check box radio button . 87 4.5 Combo box, list box: . 90 4.5.1 Danh sách lựa chọn - list box . 90 4.5.2 Điều khiển hộp lựa chọn (Combo box) . 91 4.5.3 Ví dụ sử dụng list box . 92 4.6 Điều khiển cuộn . 93 4.7 Menu Toolbar 95 4.7.1 Menu 95 4.7.2 Toolbar . 96 Chương 5: PHÁT TRIỂN ỨNG DỤNG CƠ SỞ DỮ LIỆU . 103 5.1 Tổng quan ADO.NET 103 5.1.1 Managed Provider . 104 5.1.2 Data Storage 104 5.2 Connection 106 5.2.1. Kết nối sử dụng OLEDB 106 5.2.2 Kết nối sử dụng SQLClient . 108 5.2.3 Các thuộc tính khác Connection . 109 5.2.4 Các phương thức Connection . 109 5.2.5 Minh họa tạo Connection . 110 iii 5.3 Command 112 5.3.1 Tạo Command 112 5.3.2 Các thuộc tính Command 112 5.3.3 Thực câu lệnh thông qua đối tượng Command 113 5.3.4 Parameter 115 5.4 DataReader 121 5.4.1 Các thuộc tính DataReader 121 5.4.2 Các phương thức DataReader 121 5.4.3 Tạo sử dụng DataReader . 122 5.5 DataAdapter 123 5.5.1 Tạo DataAdapter 124 5.5.2 Thuộc tính DataAdapter 126 5.5.3 Chức DataAdapter 126 5.5.3 Sử dụng DataAdapter lấy cấu trúc từ nguồn liệu . 129 5.5.4 Tạo lệnh cập nhật cho DataAdapter: 130 5.5.5 Dùng DataAdapter cập nhật thay đổi nguồn liệu 130 5.6 DataSet . 131 5.6.1 Tạo DataSet 132 5.6.2. Làm việc với DataSet . 132 5.6.3 Ví dụ minh họa làm việc với DataSet 137 5.7 DataTable 146 5.7.1 Các thuộc tính DataTable 146 5.7.2 Một số phương thức DataTable . 147 5.7.3 Một số kiện DataTable 149 5.7.4. Cấu trúc bảng - DataColumn . 149 5.7.5 DataRow . 151 5.7.6 Tập hợp Rows 152 5.8 Tạo báo biểu 163 5.8.1 Crystal Report 163 5.8.2 Hướng dẫn sử dụng report wizart. . 163 TÀI LIỆU THAM KHẢO . 174 iv LỜI GIỚI THIỆU Lập trình ứng dụng môn học quan trọng sinh viên ngành công nghệ thông tin. Lập trình không công việc thú vui niềm đam mê. Đã có nhiều ngôn ngữ lập trình sinh theo nhu cầu yêu cầu thực tế. Và bạn chọn theo sở thích thiên hướng bạn. Nhưng thực tế, ngôn ngữ lập trình để sai bảo máy tính, khiến hiểu thực điều chờ đợi. Kết phụ thuộc vào cấu trúc ngôn ngữ, vào tảng ngôn ngữ, vào hỗ trợ đặc tính ngôn ngữ; phần quan trọng thuật toán - tư logic trừu tượng người lập trình. Hiện có nhiều ngôn ngữ lập trình chuyên nghiệp sử dụng tốt để lập trình ứng dụng nói Visual Basic.NET công cụ lập trình trực quan dễ học nhất. Bài giảng xây dựng với mục đích phục vụ nhu cầu học môn Lập trình Windows cho học sinh, sinh viên hệ Cao đẳng, Đại học chuyên ngành Công nghệ thông tin trường Đại học Kinh tế Kỹ thuật Công nghiệp. Bài giảng đề cập đến nội dung lập trình Visual Basic.NET kỹ thuật lập trình sở liệu sử dụng ADO.NET. Kết cuối tạo ứng dụng quản lý sử dụng Visual Basic.NET công cụ phát triển hệ sở liệu SQL Server. Bài giảng biên soạn theo chương trình đào tạo quy định cách trình bày Nhà trường. Nội dung giảng bao gồm chương, chương bao gồm phần nội dung chủ yếu sau: - Mục tiêu chương. - Nội dung phần thảo luận. - Tóm tắt nội dung cốt lõi. - Bài tập thực hành. - Hướng dẫn tự học nhà. Do thời gian trình độ có hạn nên giảng khó tránh khỏi thiếu sót định. Chúng mong nhận góp ý bạn đọc để giảng tái hoàn thiện lần sau. Xin chân thành cám ơn! v Chương TỔNG QUAN VỀ LẬP TRÌNH .NET MỤC TIÊU CỦA CHƯƠNG - Về kiến thức Giới thiệu khái niệm cấu trúc .Net Framework, đồng thời thông qua việc trình bày ứng dụng để giới thiệu Visual Studio .Net. - Về thái độ: Giúp sinh viên ý tiếp nhận ngôn ngữ lập trình Visual Basic.NET công cụ lập trình đại ứng dụng nhiều thực tế. - Về kỹ Sau kết thúc học sinh viên cài đặt phần mềm Visual Studio 2005 chạy chương trình 1.4.2; 1.4.3; 1.4.4. NỘI DUNG BÀI GIẢNG LÝ THUYẾT 1.1 Visual Studio.NET .NET Framework 1.1.1 Giới thiệu Trong thời đại công nghệ thông tin, liệu trở nên quan trọng người ta mong muốn tất thứ điện thoại di động, máy tính xách tay, máy PDA (Personal Digital Assistant) phải kết nối với để chia liệu việc sử dụng phần mềm để quản lý, sử dụng liệu "không biên giới". Ứng dụng phải sẵn sàng để sử dụng từ máy tính điện thoại di động 24/24 giờ, lỗi, xử lý nhanh bảo mật chặt chẽ. Các yêu cầu làm đau đầu chuyên gia phát triển ứng dụng phần mềm chủ yếu viết cho hệ thống không chạy hệ thống khác nhiều lý khác biệt hệ điều hành, khác biệt chuẩn giao tiếp liệu, mạng. Thời gian chi phí trở nên quý báu bạn người biết lập trình. Làm sử dụng lại ứng dụng viết để mở rộng thêm tương thích với kỹ thuật mới? Sun Microsystems đầu việc cung cấp giải pháp với Java. Java chạy ổn định hệ điều hành Unix hay Solaris Sun từ máy chủ tới thiết bị cầm tay hay chí hệ điều hành Windows Microsoft (một ví dụ rõ ràng hầu hết điện thoại di động hệ có phần mềm viết Java). Kiến trúc lập trình dựa Java bytecode thi hành máy ảo Java (JVM – Java Virtual Marchine) cho phép ứng dụng Java chạy hệ điều hành nào. Mô hình lập trình hướng đối tượng Java giúp lập trình viên tùy ý sử dụng lại mở rộng đối tượng có sẵn. Các nhà cung cấp công cụ lập trình dựa vào để gắn vào môi trường phát triển ứng dụng Java đủ thư viện lập trình nhằm hỗ trợ lập trình viên. Sức mạnh Java dường lớn Microsoft phải chống trả cách loại bỏ Java Virtual Marchine khỏi phiên hệ điều hành Windows Windows XP. Tuy nhiên, Microsoft thừa hiểu dù không cung cấp JVM, Sun tự cung cấp JVM package cho người dùng Windows. Đó lý nhà khổng lồ định bắt tay xây dựng lại từ đầu tảng phát triển ứng dụng mới: Microsoft.NET Framework. Hiểu cách đơn giản .NET Framework thư viện dành cho lập trình viên .NET. Framework tập hợp hay thư viện lớp đối tượng hỗ trợ người lập trình xây dựng ứng dụng. Bộ thư viện .NET Framework bao gồm 5000 lớp đối tượng đủ sức hỗ trợ hầu hết yêu cầu từ phía lập trình viên. Công nghệ mã nguồn mở đưa vào .NET .NET, thành phần kế thừa mở rộng. Ngày 13/02/2002, Microsoft thức giới thiệu công cụ lập trình – Visual Studio.NET dựa công nghệ Microsoft .NET. Đó môi trường phát triển ứng dụng sử dụng giao diện đồ hoạ, tích hợp nhiều chức năng, tiện ích khác để hỗ trợ tối đa cho lập trình viên. .NET Framework thành phần quan trọng kỹ thuật phát triển ứng dụng dựa .NET. Visual Studio giúp người lập trình nắm bắt tận dụng tốt chức .NET Framework. 1.1.2 Cấu trúc .NET Framework Common language Specification: Vai trò thành phần đảm bảo tương tác đối tượng bất chấp chúng xây dựng ngôn ngữ nào, miễn chúng cung cấp thành phần chung ngôn ngữ muốn tương tác ASP.NET Bộ thư viện lớp đối tượng dùng việc xây dựng ứng dụng Web. Ứng dụng web xây dựng ASP.NET tận dụng toàn khả .NET Framework. Bên cạnh "phong cách" lập trình mà Microsoft đặt cho tên gọi kêu : code behind. Đây cách mà lập trình viên xây dựng ứng dụng Windows based thường sử dụng – giao diện lệnh tách riêng. Web services hiểu sát nghĩa dịch vụ cung cấp qua Web (hay Internet). Dịch vụ coi Web service không nhằm vào người dùng mà nhằm vào người xây dựng phần mềm. Web service dùng để cung cấp liệu hay chức tính toán. Ví dụ, công ty du lịch bạn sử dụng hệ thống phần mềm để ghi nhận thông tin khách du lịch đăng ký tour. Để thực việc đặt phòng khách sạn địa điểm du lịch, công ty cần biết thông tin phòng trống khách sạn. Khách sạn cung cấp Web service biết thông tin phòng trống thời điểm. Dựa vào đó, phần mềm bạn biết liệu có đủ chỗ để đặt phòng cho khách du lịch không? Nếu đủ, phần mềm lại dùng Web service khác cung cấp chức đặt phòng để thuê khách sạn. Điểm lợi Web service bạn không cần người làm việc liên lạc với khách sạn để hỏi thông tin phòng, sau đó, với đủ thông tin nhiều loại phòng người xác định loại phòng cần đặt, số lượng đặt bao nhiêu, đủ hay không đủ lại liên lạc lại với khách sạn để đặt phòng. Đừng quên khách sạn lúc cần có người để làm việc với nhân viên bạn chưa họ liên lạc thành công. Web service cung cấp dựa vào ASP.NET hỗ trợ từ phía hệ điều hành Internet Information Server. Windows Form Bộ thư viện Window form gồm lớp đối tượng dành cho việc xây dựng ứng dụng Windows based. ADO.NET and XML Bộ thư viện gồm lớp dùng để xử lý liệu. ADO.NET thay ADO để việc thao tác với liệu thông thường. Các lớp đối tượng XML cung cấp để bạn xử lý liệu theo định dạng mới: XML. Các ví dụ cho thư viện SqlDataAdapter, SqlCommand, DataSet, XMLReader, XMLWriter,… Base Class Library Đây thư viện lớp nhất, dùng lập trình hay thân người xây dựng .NET Framework phải dùng để xây dựng lớp cao hơn. Ví dụ lớp thư viện String, Integer, Exception,… Common Language Runtime Là thành phần "kết nối" phần khác .NET Framework với hệ điều hành. Common Language Runtime (CLR) giữ vai trò quản lý việc thi hành ứng dụng viết .NET Windows. CLR thông dịch lời gọi từ chương trình cho Windows thi hành, đảm bảo ứng dụng không chiếm dụng sử dụng tràn lan tài nguyên hệ thống. Nó không cho phép lệnh "nguy hiểm" thi hành. Các chức thực thi thành phần bên CLR Class loader, Just In Time compiler, Garbage collector, Exception handler, COM marshaller, Security engine,… Trong phiên hệ điều hành Windows XP.NET Windows 2003, CLR gắn kèm với hệ điều hành. Điều đảm bảo ứng dụng viết máy tính chạy máy tính khác mà không cần cài đặt, bước thực đơn giản lệnh copy DOS! Operating System .NET Framework cần cài đặt sử dụng hệ điều hành. Hiện tại, .NET Framework có khả làm việc hệ điều hành Microsoft Win32 Win64 mà thôi. Trong thời gian tới, Microsoft đưa hệ thống lên Windows CE cho thiết bị cầm tay mở rộng cho hệ điều hành khác Unix. Với vai trò quản lý việc xây dựng thi hành ứng dụng, .NET Framework cung cấp lớp đối tượng (Class) để NLT gọi thi hành chức mà đối tượng cung cấp. Tuy nhiên, lời gọi có "hưởng ứng" hay không tùy thuộc vào khả hệ điều hành chạy ứng dụng. Các chức đơn giản hiển thị hộp thông báo (Messagebox) .NET Framework sử dụng hàm API Windows. Chức phức tạp sử dụng COMponent yêu cầu Windows phải cài đặt Microsoft Transaction Server (MTS) hay chức Web cần Windows phải cài đặt Internet Information Server (IIS). Như vậy, việc lựa chọn hệ điều hành để cài đặt sử dụng .NET Framework không phần quan trọng. Cài đặt .NET Framework hệ điều hành Windows 2000, 2000 Server, XP, XP.NET, 2003 Server đơn giản tiện dụng lập trình. Private Sub btpr_Click . If chiso > Then chiso -= FillTextBox() End Sub Đoạn mã cho biến cố Click nút Insert, Delete, Save: Private Sub btinsert_Click txtmasp.Clear() txttensp.Clear() txtnhacc.Clear() txtdongia.Clear() txtmasp.Focus() chedo = "Insert" btsave.Enabled = True btcancel.Enabled = True End Sub Private Sub btdelete_Click . chedo = "Delete" btsave.Enabled = True Dim row As DataRow = dt1.Rows(chiso) Dim traloi As String traloi = MsgBox("Xóa ghi thời ?", _ MsgBoxStyle.OkCancel) If traloi = Then If chiso > Then chiso -= Else chiso = tongso - tongso -= FillTextBox() row.Delete() End If End Sub Private Sub btedit_Click . btsave.Enabled = True chedo = "Edit" Dim row As DataRow = dt1.Rows(chiso) row.BeginEdit() row("masp") = txtmasp.Text row("tensp") = txttensp.Text row("nhacc") = txtnhacc.Text row("dongia") = CSng(txtdongia.Text) 159 row.EndEdit() End Sub Private Sub btsave_Click . If chedo = "Insert" Then If txtmasp.Text = "" And txttensp.Text = "" And _ txtnhacc.Text = "" And txtdongia.Text = "" Then MsgBox("Phải nhập đủ thông tin") Else Label6.Text = "Saving ." Dim row As DataRow = dt1.NewRow row("masp") = txtmasp.Text row("tensp") = txttensp.Text row("nhacc") = txtnhacc.Text row("dongia") = CSng(txtdongia.Text) dt1.Rows.Add(row) End If tongso += chiso = tongso - da1.Update(dst, "sanpham") dst.AcceptChanges() Label6.Text = "Record " & tongso & "/" & tongso End If If chedo = "Delete" Then tongso -= da1.Update(dst, "sanpham") dst.AcceptChanges() End If If chedo = "Edit" Then da1.Update(dst, "sanpham") dst.AcceptChanges() End If End Sub Xử lý việc tìm kiếm. Để kiện bàn phím có tác dụng form, ta phải đổi thuộc tính KeyPreview form thành True. Bổ sung đoạn lệnh sau vào thủ tục KeyDown form: Dim msp As Int16 If e.KeyCode = Keys.F7 Then If dt1.DataSet Is Nothing Then MsgBox("Chưa nạp liệu") Else msp = InputBox("Nhập mã sản phẩm cần tìm") 160 Dim dongsp As DataRow dongsp = dt1.Rows.Find(msp) If dongsp Is Nothing Then MsgBox("Không tìm thấy") Else txtmasp.Text = dongsp("masp") txttensp.Text = dongsp("tensp") txtnhacc.Text = dongsp("nhacc") txtdongia.Text = dongsp("dongia") End If End If End If Ví dụ 5.14 - Sử dụng Binding Navigator để cập nhật liệu bảng sanpham - Bước 1: Thiết kế form gồm label datagridview hình sau: - Bước 2: Kết nối đến sở liệu De1 View/Server Explorer - Bước 3: Bổ sung điều khiển SQLDataAdapter vào form nhập lệnh sau cho hình Select Command: Select * from sanpham - Bước 4: Tạo dataset chức Generated DataSet. Đặt tên cho Dataset dst11. 161 - Bước 5: Bổ sung điều khiển Binding Source vào form. Khai báo thuộc tính DataSource dst11 thuộc tính DataMember sanpham. - Bước 6: Kéo điều khiển Binding Navigator vào form (bên label danh mục sản phẩm). Khai báo thuộc tính Binding Source BindingSource1 (tên BindingSource). - Bước 7: Khai báo thuộc tính DataSource lưới BindingSource1. - Bước 7: Bổ sung đoạn lệnh vào thủ tục Load Form (đoạn lệnh đổ liệu từ SQLDataAdapter1 vào dst11) tự động sinh lệnh khác cho SQLDataAdapter1 Dst111.Clear() SqlDataAdapter1.Fill(Dst111, "sanpham") Dim bo_lenh As New SqlClient.SqlCommandBuilder(SqlDataAdapter1) Các lệnh cập nhật cho dataset dataAdapter đưa vào biến cố FormClosed: SqlDataAdapter1.Update(Dst111, "sanpham") Dst111.AcceptChanges() Khi chạy, form thể hình đây. Ta dùng công cụ Add New Delete BindongNavigator để thêm xóa ghi; dùng nút Move First, Move Previous, Move Next Move Last để di chuyển trỏ ghi. 162 5.8 Tạo báo biểu 5.8.1 Crystal Report Crystal Report phần mềm thiết kế báo biểu chuyên nghiệp tích hợp phiên Visual Studio. Phiên Studio .NET Microsoft tích hợp Crystal Report 8.5. Bản thân Crystal Report phần mềm tạo báo biểu độc lập với nhiều chức thiết kế báo biểu dịch vụ. Người dùng kết nối với nhiều nguồn liệu khác ODBC Driver. Báo biểu tạo lưu trữ thành file .rpt độc lập, dạng có liệu hay liệu. Sau đó, file .rpt chuyển tới người dùng khác mở Crystal Report hay kết hợp với ứng dụng viết Visual Basic, Visual C++. Xét mặt thiết kế báo biểu, Crystal Report cung cấp đầy đủ chức đinh dạng liệu chức phân nhóm, tính toán, sub – report kể khả lập trình formula dựa fomula field. Người dùng việc sử dụng formula field tự xây dựng thư viện hàm riêng đưa vào Crystal Report thông qua DLL. Bên cạnh khả thiết kế báo biểu thông thường, Crystal Report cung cấp chức thiết kế biểu đồ dựa nguồn liệu lấy từ CSDL. Xét mặt sử dụng báo biểu, công cụ hiển thị Crystal Report cho phép người dùng tương tác linh hoạt. Báo biểu hiển thị lọc lại liệu cần thiết hay xem phần báo biểu cách sử dụng cấu trúc hiển thị liệu dạng cây. Các Section báo biểu mở rộng hay thu hẹp để hiển thị hay che bớt liệu không cần thiết. Một báo biểu xây dựng, người dùng Export sang dạng file khác Word, Excel, HTML,… Bằng cách tích hợp Crystal Report 8.5, Visual Studio .NET đem lại cho người dùng công cụ xây dựng báo biểu hiệu quả, tiết kiệm nhiều thời gian so với việc phải sử dụng đối tượng in ấn để tự phát sinh báo biểu. Chúng ta sử dụng Report Expert để tạo báo biểu dựa vào wizard template định sẵn hay thiết kế chi tiết báo biểu tay. Trong giáo trình hướng dẫn cách tạo báo biểu wizard. 5.8.2 Hướng dẫn sử dụng report wizart. Thiết kế form lọc liệu theo mẫu sau. 163 Form cho phép người sử dụng chọn tên nhân viên bán hàng cboten hiển thị thông tin chi tiết hóa đơn bán hàng nhân viên đó. Khi nhấn nút Report ta xuất liệu form sang report thể hình sau: Phần hiển thị lọc liệu thực thông qua đối tượng dataAdapter đối tượng DataSet hướng dẫn ví dụ trước. Bạn tham khảo phần code với da tên DataAdapter dst tên DataSet. Form có tên ngầm định form1 'khai báo biến tầm vực đơn thể - biến chung class Dim lenh1 As String = "select banhang.sohd, banhang.ngayban," & _ "banhang.nguoiban, banhang.masp,sanpham.tensp,sanpham.dongia," & _ "banhang.soluong, banhang.thanhtien from banhang,sanpham " & _ " where banhang.masp=sanpham.masp" Dim lenh2 As String Dim da As New SqlClient.SqlDataAdapter(lenh1, Chuoi_ket_noi) Dim dst As New DataSet 164 ' Thủ tục Load form Private Sub Form1_Load . dst.Clear() da.Fill(dst, "bangthongke") dg.DataSource = dst dg.DataMember = "bangthongke" Tao_ket_noi() If Ket_noi.State = ConnectionState.Closed Then Ket_noi.Open() Dim comm1 As New SqlClient.SqlCommand _ ("select distinct nguoiban from banhang", Ket_noi) Dim reader1 As SqlClient.SqlDataReader = _ comm1.ExecuteReader(CommandBehavior.CloseConnection) While reader1.Read cboten.Items.Add(reader1.Item(0)) End While reader1.Close() End Sub 'Thủ tục chọn mục cbo_ten Private Sub cboten_SelectedIndexChanged . lenh2 = " and banhang.nguoiban='" & cboten.Text & "'" da.SelectCommand.CommandText = lenh1 & lenh2 dst.Clear() da.Fill(dst, "bangthongke") End Sub Vấn đề lại cách xây dựng báo biểu thống kê chi tiết lần bán hàng theo tên nhân viên viết code cho nút Report. Hãy thực theo bước sau: - Bước 1: Trong SQL Server tạo thủ tục nhận tên người bán làm tham số trả thông tin bán hàng nhân viên đó. Thủ tục có tên thongkeBHtheoNV tạo sau: Create proc ThongkeBHtheoNV(@tennb nvarchar(50)) as begin select banhang.sohd, banhang.ngayban,banhang.nguoiban, banhang.masp,sanpham.tensp,sanpham.dongia, banhang.soluong,banhang.thanhtien from sanpham,banhang where banhang.masp=sanpham.masp and 165 banhang.nguoiban=@tennb end Biên dịch thủ tục (nhấn F5) - Bước 2: + Tạo Crystal Report (nhấn phải chuột vào tên project cửa sổ Solution Explorer, chọn Add, chọn Crystal Report). + Đặt tên report rptTK_TheoNV. Cửa sổ Crystal Reports Gallery xuất hình đây. Chọn kiểu Standard nhấn OK. - Bước 3: Nháy đúp vào mục Create New Connection; chọn OLEDB, chọn Microsoft OLEDB Provider for SQL Server, chọn Next 166 167 + Chọn tên Server tên Database. Nhấn Next sang hình tiếp theo. 168 + Tìm tên thủ tục ThongkeBHtheoNV danh mục thủ tục nội sở liệu. Add sang bảng Selected Table. Nhấn Next để tiếp tục. + Add toàn trường thủ tục ThongkeBHtheoNV sang cửa sổ bên phải. Nhấn Finish để hoàn tất bước 3. Report rptTK_theoNV xuất project. - Bước 4: Định dạng lại report hình đây. Section1 phần tiêu đề báo biểu; Section tiêu đề cột bảng (lặp lại hết trang); Section3 phần liệu tương ứng với ghi. + Dùng Text Object để đặt label lên báo biểu; Line Object để vẽ đường thẳng; dùng cửa sổ Field Explorer để chèn trường vào báo biểu. + Để định dạng nội dung, font chữ, kiểu liệu tiêu đề cột liệu cột, nhấn phải chuột vào đối tượng chọn lệnh cần thiết. 169 Thủ thuật: Để gióng hàng (hoặc đặt kích cỡ) cho nhiều đối tượng, bạn chọn chúng nhấn phải chuột chọn Align Size. + Để xem trước báo biểu, chọn nút Main Report Preview. - Bước 5: Tạo form làm lớp sở cho báo biểu: + Tạo form mới, đặt tên form frmTK_theoNV. + Đưa vào form điều khiển CrystalReportViewer. Điều khiển có tên ngầm định CrystalReportViewer1 - Bước 6: Viết code cho nút Report chạy thử chương trình Dim myreport As New rptTK_TheoNV myreport.SetDataSource(dst.Tables("bangthongke")) Dim f As New frmTK_TheoNV f.CrystalReportViewer1.ReportSource = myreport f.ShowDialog() NỘI DUNG PHẦN THẢO LUẬN 1. Các phương pháp xây dựng form hiển thị liệu 2. Mô hình thiết kế form lọc liệu 3. Các phương pháp xây dựng form cập nhật liệu 4. Tính toán sở liệu 5. Xử lý ràng buộc sở liệu 6. Xử lý trùng khóa sở liệu. TÓM TẮT NỘI DUNG CỐT LÕI Trong chương sinh viên cần ý đến nội dung sau: • Tạo module kết nối sở liệu • Hiển thị liệu Data Reader • Hiển thị liệu DataAdapter kết hợp với DataSet, DataTable • Tính toán, cập nhật liệu đối tượng Command • Tính toán, cập nhật liệu đối tượng DataSet, DataTable • Cập nhật liệu Binding Navigator • Tạo sử dụng báo biểu. 170 BÀI TẬP THỰC HÀNH 1. Tạo sở liệu SQL có tên De1 với cấu trúc bảng liệu sau: SanPham (MaSP int, TenSP nvarchar(50), nvarchar(30), DonGia decimal) BanHang (SoHD int, NgayBan datetime, MaSP int ràng buộc khóa ngoại tham chiếu đến MaSP bảng SanPham, NguoiBan nvarchar(50), SoLuong int, ThanhTien decimal) NhaCC SanPham MaSP (mã sản phẩm TenSP (tên sản phẩm) NhaCC (nhà cung cấp) DonGia (đơn giá) LCD Toshiba 32 inch Toshiba 6690000 LCD Toshiba 40 inch Toshiba 10900000 LCD LG 32 inch LG LCD Sony 40 inch Sony LED Samsung 22 inch Samsung 5290000 14900000 5790000 BanHang SoHD NgayBan (ngày bán) MaSP (mã sản phẩm) Ngươiban (người bán) SoLuong (số lượng) '2/1/2011' An '2/1/2011' Bình '2/1/2011' Vân '2/3/2011' Bình '3/1/2011' An '3/1/2011' An '3/2/2011' Vân '4/1/2011' Vân '4/1/2011' An 10 '4/1/2011' An 11 '4/1/2011' Bình 12 '4/1/2011' Vân ThanhTien (thành tiền) 2. Tạo project mới. Trên tạo module viết thủ tục Tao_Ket_noi với sở liệu De1 (xem mẫu ví dụ 5.2b). 3. Tạo form theo mẫu đây. Form cho phép nhập tên nhân viên bán hàng thống kê số lần bán hàng, tổng số tiền bán hàng. (xem mẫu ví dụ 5.3, 5.4) 171 4. Thiết kế form theo mẫu ví dụ 5.5 5. Tạo thủ tục thongkenv thêm vào project form theo ví dụ 5.6 6. Bổ sung form thiết kế theo mẫu ví dụ 5.7 7. Tạo form hiển thị bảng kê chi tiết bán hàng (xem mẫu ví dụ 5.8a 5.8b) 8. Bổ sung thêm form tương ứng với mẫu ví dụ 5.9, 5.10, 5.11, 5.12, 5.13, 5.14 9. Thêm form MDI có tên frmChinh vào project. Thiết kế menu cho form. Các mục chọn menu cho phép gọi form tương ứng project. - Thống kê, tính toán: + Ví dụ 5.4 + Ví dụ 5.5 + Ví dụ 5.6 172 - Hiển thị liệu + Ví dụ 5.7 + Ví dụ 5.8 + Ví dụ 5.9 + Ví dụ 5.9 b - Dùng Server Explorer để kết nối CSDL - Lọc liệu - Ví dụ 5.10 - Cập nhật liệu + Thêm ghi - Ví dụ 5.11 + Xóa ghi - Ví dụ 5.12 + Cập nhật chung - Ví dụ 5.13 + Binding Navigator - Ví dụ 5.14 10. Bổ sung vào sở liệu bảng NguoiSD với hai trường UserName Pass. Nhập liệu cho ghi. Thiết kế form đăng nhập cho hệ thống mẫu sau. Form cho phép người sử dụng nhập tên password. Khi bấm nút Đăng nhập, tên password sai đưa thông báo lỗi, với tên password lưu sở liệu chuyển đến làm việc với form frmChinh tạo câu 9. 173 TÀI LIỆU THAM KHẢO Tiếng Việt 1. Trung tâm tin học Đại học Khoa học tự nhiên thành phố Hồ Chí Minh (2006), Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình Học phần Visual Basic.NET. 2. Nguồn ebook SachVBNET.pdf (3-1-2011), Giáo trình Lập trình hướng đối tượng với VB.NET. 3. Nguyễn Ngọc Tuấn (2005), Visual Studio.Net , Nhà xuất Thống kê. 4. Website http://www.thayphet.net (2011). Tiếng Anh 5. Dave Grundgeiger (2002), Programming Visual Basic .NET, Publisher: O'Reilly. 6. Nguồn ebook dotnet tutorial for beginner.pdf (3-1-2011), India Community Initiative, NET Tutorial for Beginners. 7. Nguồn ebook 2878ch06.pdf (4-2011), Mastering™ Visual Basic® .NET Chapter 6: A First Look at ADO.NET , Evangelos Petroutsos; Asli Bilgin, Copyright © 2002 SYBEX Inc. 8. The National Department of Education (2008), Introduction to VB.NET Manual. 174 [...]... trao đổi giữa các ngôn ngữ lập trình trong Net Common Type System có chức năng: Thiết lập một nền tảng cho phép tương tác giữa các ngôn ngữ lập trình, bảo toàn giá trị của dữ liệu khi có sự trao đổi dữ liệu giữa các ngôn ngữ và bảo đảm việc thực hiện câu lệnh được tối ưu Cung cấp một mô hình hướng đối tượng cho các ngôn ngữ lập trình Đưa ra những quy tắc để các ngôn ngữ lập trình phải tuân thủ nhằm bảo... trưng của một ngôn ngữ lập trình hướng đối tượng (Object Oriented Language - OOL) như các ngôn ngữ C++ hay Java Thay vì cải thiện hay vá víu thêm thắt vào VB 6.0, Microsoft đã xóa bỏ tất cả để làm lại từ đầu các ngôn ngữ lập trình hướng đối tượng rất hùng mạnh Đó là các ngôn ngữ lập trình Visual Basic NET và C# (C Sharp) Có thể nói Visual Basic.NET (VB.NET) là một ngôn ngữ lập trình hướng đối tượng... chương trình là xác định xem chương trình gồm những lệnh nào, thứ tự thực hiện của chúng ra sao Phương pháp lập trình hướng thủ tục Trong phương pháp này chương trình được xem là một hệ thống các thủ tục (sub và function) Trong đó, mỗi thủ tục là một dãy các lệnh được sắp thứ tự Khi đó, việc viết chương trình là xác định xem chương trình gồm các thủ tục nào, mối quan hệ giữa chúng ra sao? Phương pháp lập. .. ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft NET FrameWork VB.NET hỗ trợ đầy đủ các đặc trưng của một ngôn ngữ hướng đối tượng như là trừu tượng, bao đóng, kế thừa, đa hình, đa luồng và cấu trúc xử lý các exception VB.NET là một ngôn ngữ lập trình cho phép người sử dụng thiết lập các ứng dụng theo 3 loại: - Ứng dụng Console là các chương trình chạy trên hệ điều hành MS-DOS thông qua trình biên... 1.3.4 Ví dụ 2 - Hello, Windows Dưới đây là một ví dụ về phiên bản GUI (Graphical User Interface) của Hello, World Imports System Imports System.Drawing Imports System .Windows. Forms Public Class HelloWindows Inherits Form Private lblHelloWindows As Label Public Shared Sub Main( ) Application.Run(New HelloWindows( )) End Sub Public Sub New( ) lblHelloWindows = New Label( ) With lblHelloWindows Location =... tên Drawing và Windows. Forms Từ khóa Inherits cho thấy lớp HelloWindows thừa kế lớp Form là một lớp đã được thiết kế sẵn trong Namespace Windows. Forms Thủ tục New định nghĩa các thuộc tính trên form HelloWindows và định nghĩa một điều khiển label trên form 15 Để biên dịch chương trình này chúng ta sử dụng câu lệnh: vbc HelloWindows.vb /reference:System.dll,System.Drawing.dll, System .Windows. Forms.dll... sinh viên hệ thống và củng cố lại các khái niệm chính trong lập trình hướng lệnh như nhập xuất dữ liệu, hoạt động của các cấu trúc rẽ nhánh và cấu trúc lặp - Về kỹ năng Sau khi kết thúc bài học sinh viên giải được các ví dụ trong phần bài tập bằng cách viết các đoạn chương trình và xây dựng các thủ tục, hàm bằng ngôn ngữ VB.NET NỘI DUNG BÀI GIẢNG LÝ THUYẾT 2.1 Các kiểu dữ liệu và đặc điểm 2.1.1 Các... Custom (tự thiết lập các thông số); sau đó click vào nút Install và làm theo các hướng dẫn trên màn hình Quá trình cài đặt sẽ yêu cầu bạn khởi động lại máy trước khi kết thúc 9 Tùy theo cấu hình từng máy mà thời gian cài đặt có thể mất từ 25-35 phút 1.3 Visual Basic.NET 1.3.1 Các phương pháp lập trình trong VB.NET Phương pháp lập trình hướng lệnh Trong phương pháp này người ta xem chương trình là tập hợp... Visual Studio là tất cả các ngôn ngữ lập trình trong NET Framework đều có chung một IDE (Integrated Development Environment), trình gỡ lỗi, trình duyệt project và solution, class view, cửa sổ thuộc tính, hộp công cụ, menu và toolbar Ngoài ra còn phải kể đến một số các đặc trưng sau 1 Từ khóa và cú pháp lệnh được tô sáng 2 Tự động hoàn thành các cú pháp lệnh khi người lập trình đánh dấu chấm với objects,... lập trình hướng đơn thể Trong phương pháp này chương trình được xem là một hệ thống các đơn thể, mỗi đơn thể là một hệ thống các thủ tục và hàm Khi đó, việc viết chương trình là 10 xác định xem chương trình gồm những đơn thể nào? Đơn thể nào đã có sẵn, đơn thể nào phải đi mua, đơn thể nào phải tự viết Trong VB.NET đơn thể được xem là một trong các cấu trúc Module, Class, Structure Phương pháp lập trình . người lập trình. Hiện nay có rất nhiều các ngôn ngữ lập trình chuyên nghiệp có thể sử dụng tốt để lập trình các ứng dụng trong đó có thể nói Visual Basic.NET là một trong những công cụ lập trình. pháp lập trình trong VB.NET Phương pháp lập trình hướng lệnh Trong phương pháp này người ta xem chương trình là tập hợp các lệnh. Khi đó việc viết chương trình là xác định xem chương trình. tin trường Đại học Kinh tế Kỹ thuật Công nghiệp. Bài giảng đề cập đến những nội dung về lập trình Visual Basic.NET căn bản và các kỹ thuật lập trình cơ sở dữ liệu sử dụng ADO.NET. Kết quả cuối