Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 72 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
72
Dung lượng
1,81 MB
Nội dung
UỶ BAN NHÂN DÂN TỈNH HẢI PHÒNG TRƯỜNG CĐCN HẢI PHỊNG GIÁO TRÌNH Tên mơn đun: Lập trình trực quan Hải Phịng , năm 2019 Vị trí, tính chất mơ đun: - Vị trí: Mơn đun bố trí sau sinh viên học xong môn học chung, trước môn học/ mô-đun đào tạo chuyên môn nghề - Tính chất: Là mơ đun chun mơn nghề Giúp sinh viên kiến thức sở cách xây dựng chương trình ứng dụng ngơn ngữ lập trình cụ thể với hệ quản trị sở liệu xây dựng Mục tiêu mô đun: - Về kiến thức: + Trình bày framework.Net; + Trình bày kiến thức ngôn ngữ C# - Về kỹ năng: + Vận dụng điều kiện, trợ giúp mơi trường ngơn ngữ lập trình C# để lập trình + Mơ tả biến dùng chương trình; + Vận dụng quy tắc cú pháp ngơn ngữ lập trình; + Kết nối tới CSDL; + Chương trình có thích (tóm tắt) cho đoạn mã, thuận lợi cho việc theo dõi chức chúng Chương trình con; + Viết chương trình quản lý khai thác liệu - Về lực tự chủ trách nhiệm: + Tự chủ độc lập công việc xử lý vấn đề liên quan; + Đảm bảo hoạt động diễn an tồn lao động Nội dung mơ đun: Số TT Tên Bài/mục I Bài 1: Cơ ngôn ngữ C# II Bài 2: Xây dựng ứng dụng Windows Form III Bài 3: Mảng Ngoại lệ IV Bài 4: Lớp, Đối tượng Phương thức V VI VII Bài 5: Lập trình kết nối CSDL Bài 6: Xây dựng ứng dụng Bài 7: Bài tập lớn MỤC LỤC BÀI 1: CƠ BẢN NGÔN NGỮ C# Giới thiệu ngôn ngữ C# Mơi trường lập trình 30 Biến, hằng, toán tử 33 Kiểu liệu 42 Cấu trúc điều khiển 45 Cấu trúc lặp 47 BÀI 2: XÂY DỰNG ỨNG DỤNG WINDOWS FORM 50 Sử dụng Visual Studio 2008 50 Các control 53 Menu ToolBar 61 Common Dialog (Hộp thoại dùng chung) 62 BÀI 3: MẢNG VÀ NGOẠI LỆ 64 Mảng chiều 64 Mảng nhiều chiều 65 String 65 Exception 66 BÀI 4: LỚP, ĐỐI TƯỢNG VÀ PHƯƠNG THỨC 68 Khái niệm 68 Định nghĩa lớp ( Class ) 68 Phương thức ( Method ) 70 BÀI 5: LẬP TRÌNH KẾT NỐI CSDL 72 Tạo kết nối 72 Sử dụng control 73 Các thao tác liệu 73 BAI 6: XÂY DỰNG ỨNG DỤNG 80 Chuẩn bị 80 Sử dụng Control 80 Sử dụng CSDL 84 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ập trình Windows” mơn học bắt buộc trường nghề Tuỳ thuộc vào đối tượng người học cấp bậc học mà trang bị cho học sinh, sinh viên kiến thức Để thống chương trình nội dung giảng dạy nhà trường biên soạn giáo trình: Lập trình Windows Giáo trình biên soạn phù hợp với nghề trường đào tạo nghề phục vụ theo yêu cầu thực tế xã hội Tài liệu tham khảo để biên soạn gồm: - Lập trình mơi trường Windows, Đại học Cơng nghệ TPHCM, năm 2015 - Giáo trình Lập trình môi trường Window, Nhà xuất khoa học kỹ thuật, năm 2011 - Tài liệu hướng dẫn thực hành Lập trình mơi trường Windows, Nhà xuất Đại học Quốc gia TP HCM, năm 2014 Kết hợp với kiến thức có liên quan mơn học vấn đề thực tế thường gặp sản xuất, đời sống để giáo trình có tính thực tế cao, giúp cho người học dễ hiểu, dễ dàng lĩnh hội kiến thức mơn học Trong q trình biên soạn giáo trình kinh nghiệm cịn hạn chế, chúng tơi mong nhận ý kiến đóng góp bạn đọc để lần hiệu đính sau hồn chỉnh Tổ mơn Ứng dụng máy tính BÀI 1: CƠ BẢN NGƠN NGỮ C# Giới thiệu ngôn ngữ C# Microsoft NET Tổng quan Microsoft NET gồm phần : Framework Integrated Development Environment (IDE) Framework cung cấp cần thiết bản, chữ Framework có nghĩa khung hay khung cảnh ta dùng hạ tầng sở theo qui ước định để cơng việc trơi chảy IDE cung cấp môi trường giúp triển khai dễ dàng, nhanh chóng ứng dụng dựa tảng NET Nếu khơng có IDE dùng trình soạn thảo ví Notepad hay trình soạn thảo văn sử dụng command line để biên dịch thực thi, nhiên việc nhiều thời gian Tốt dùng IDE phát triển ứng dụng, cách dễ sử dụng Thành phần Framework quan trọng NET cốt lõi tinh hoa mơi trường, cịn IDE cơng cụ để phát triển dựa tảng thơi Trong NET tồn ngôn ngữ C#, Visual C++ hay Visual Basic.NET dùng IDE Tóm lại Microsoft NET tảng cho việc xây dựng thực thi ứng dụng phân tán hệ Bao gồm ứng dụng từ client đến server dịch vụ khác Một số tính Microsoft NET cho phép nhà phát triển sử dụng sau: Một mơ hình lập trình cho phép nhà phát triển xây dựng ứng dụng dịch vụ web ứng dụng client với Extensible Markup Language (XML) Tập hợp dịch vụ XML Web, Microsoft NET My Services cho phép nhà phát triển đơn giản tích hợp người dùng kinh nghiệm Cung cấp server phục vụ bao gồm: Windows 2000, SQL Server, BizTalk Server, tất điều tích hợp, hoạt động, quản lý dịch vụ XML Web ứng dụng Các phần mềm client Windows XP Windows CE giúp người phát triển phân phối sâu thuyết phục người dùng kinh nghiệm thông qua dịng thiết bị Nhiều cơng cụ hỗ trợ Visual Studio NET, để phát triển dịch vụ Web XML, ứng dụng Windows hay web cách dể dàng hiệu Kiến trúc NET Framework NET Framework platform làm đơn giản việc phát triển ứng dụng môi trường phân tán Internet .NET Framework thiết kế đầy đủ để đáp ứng theo quan điểm sau: Để cung cấp mơi trường lập trình hướng đối tượng vững chắc, mã nguồn đối tượng lưu trữ thực thi cách cục Thực thi cục phân tán Internet, thực thi từ xa Để cung cấp môi trường thực thi mã nguồn mà tối thiểu việc đóng gói phần mềm tranh chấp phiên Để cung cấp môi trường thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm việc mã nguồn tạo hãng thứ ba hay hãng mà tuân thủ theo kiến trúc NET Để cung cấp môi trường thực thi mã nguồn mà loại bỏ lỗi thực script hay môi trường thông dịch Để làm cho người phát triển có kinh nghiệm vững nắm vững nhiều kiểu ứng dụng khác Như từ ứng dụng Windows đến ứng dụng dựa web Để xây dựng tất thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo mã nguồn NET tích hợp với mã nguồn khác .NET Framework có hai thành phần chính: Common Language Runtime (CLR) thư viện lớp NET Framework CLR tảng NET Framework Chúng ta hiểu runtime agent quản lý mã nguồn thực thi, cung cấp dịch vụ cốt lõi như: quản lý nhớ, quản lý tiểu trình, quản lý từ xa Ngồi cịn thúc đẩy việc sử dụng kiểu an tồn hình thức khác việc xác mã nguồn, đảm bảo cho việc thực bảo mật mạnh mẽ Thật vậy, khái niệm quản lý mã nguồn nguyên lý tảng runtime Mã nguồn mà đích tới runtime biết mã nguồn quản lý (managed code) Trong mã nguồn mà khơng có đích tới runtime biết mã nguồn không quản lý (unmanaged code) Thư viện lớp, thành phần khác NET Framework tập hợp hướng đối tượng kiểu liệu dùng lại, cho phép phát triển ứng dụng từ ứng dụng truyền thống command-line hay ứng dụng có giao diện đồ họa (GUI) đến ứng dụng cung cấp ASP.NET, Web Form dịch vụ XML Web Common Language Runtime (CLR) Như đề cập CLR thực quản lý nhớ, quản lý thực thi tiểu trình, thực thi mã nguồn, xác nhận mã nguồn an toàn, biên bịch dịch vụ hệ thống khác Những đặc tính tảng cho mã nguồn quản lý chạy CLR Do trọng đến bảo mật, thành phần quản lý cấp mức độ quyền hạn khác nhau, phụ thuộc vào nhiều yếu tố nguyên thủy chúng như: liên quan đến Internet, hệ thống mạng nhà máy, hay máy tính cục Điều có nghĩa rằng, thành phần quản lý có hay khơng có quyền thực thao tác truy cập tập tin, thao tác truy cập registry, hay chức nhạy cảm khác CLR thúc đẩy việc mã nguồn thực việc truy cập bảo mật Ví dụ, người sử dụng giới hạn việc thực thi nhúng vào trang web chạy hoạt hình hình hay hát nhạc, khơng thể truy cập liệu riêng tư, tập tin hệ thống, hay truy cập mạng Do đó, đặc tính bảo mật CLR cho phép phần mềm đóng gói Inernet có nhiều đặc tính mà khơng ảnh hưởng đến việc bảo mật hệ thống CLR thúc đẩy cho mã nguồn thực thi mạnh mẽ việc thực thi mã nguồn xác xác nhận mã nguồn Nền tảng việc thực Common Type System (CTS) CTS đảm bảo mã nguồn quản lý tự mơ tả (self- describing) Sự khác Microsoft trình biên dịch ngơn ngữ hãng thứ ba việc tạo mã nguồn quản lý thích hợp với CTS Điều mã nguồn quản lý sử dụng kiểu quản lý khác thể hiện, thúc đẩy nghiêm ngặt việc sử dụng kiểu liệu xác an tồn Thêm vào đó, mơi trường quản lý runtime thực việc tự động xử lý layout đối tượng quản lý tham chiếu đến đối tượng, giải phóng chúng chúng khơng cịn sử dụng Việc quản lý nhớ tự động giải hai lỗi chung ứng dụng: thiếu nhớ tham chiếu nhớ không hợp lệ Trong runtime thiết kế cho phần mềm tương lai, hỗ trợ cho phân mềm ngày trước Khả hoạt động qua lại mã nguồn quản lý mã nguồn không quản lý cho phép người phát triển tiếp tục sử dụng thành phần cần thiết COM DLL Rutime thiết kế để cải tiến hiệu suất thực Mặc dù CLR cung cấp nhiều tiêu chuẩn dịch vụ runtime, mã nguồn quản lý không dịch Có đặc tính gọi Just-in-Time (JIT) biên dịch tất mã nguồn quản lý vào ngôn ngữ máy hệ thống vào lúc mà thực thi Khi đó, trình quản lý nhớ xóa bỏ phân mảnh nhớ gia tăng tham chiếu nhớ cục bộ, kết gia tăng hiệu thực thi Thư viện lớp NET Framework Thư viện lớp NET Framework tập hợp kiểu liệu dùng lại kết hợp chặt chẽ với Common Language Runtime Thư viện lớp hướng đối tượng cung cấp kiểu liệu mà mã nguồn quản lý dẫn xuất Điều khơng làm cho kiểu liệu NET Framework dễ sử dụng mà làm giảm thời gian liên quan đến việc học đặc tính NET Framework Thêm vào đó, thành phần hãng thứ ba tích hợp với lớp NET Framework Cũng mong đợi người phát triển với thư viện lớp hướng đối tượng, kiểu liệu NET Framework cho phép người phát triển thiết lập nhiều mức độ thơng dụng việc lập trình, bao gồm nhiệm vụ như: quản lý chuỗi, thu thập hay chọn lọc liệu, kết nối với cở liệu, truy cập tập tin Ngoài nhiệm vụ thơng dụng Thư viện lớp cịn đưa vào kiểu liệu để hỗ trợ cho kịch phát triển chuyên biệt khác Ví dụ người phát triển sử dụng NET Framework để phát triển kiểu ứng dụng dịch vụ sau: Ứ ng dụng Console Ứ ng dụng giao diện GUI Windows (Windows Forms) Ứ ng dụng ASP.NET Dịch vụ XML Web Dịch vụ Windows Trong lớp Windows Forms cung cấp tập hợp lớn kiểu liệu nhằm làm đơn giản việc phát triển ứng dụng GUI chạy Windows Còn viết ứng dụng ASP.NET sử dụng lớp Web Forms thư viện NET Framework Phát triển ứng dụng Client Những ứng dụng client gần với ứng dụng kiểu truyền thống lập trình dựa Windows Đây kiểu ứng dụng hiển thị cửa sổ hay form desktop cho phép người dùng thực thao tác hay nhiệm vụ Những ứng dụng client bao gồm ứng dụng xử lý văn bản, xử lý bảng tính, ứng dụng lĩnh vực thương mại công cụ nhập liệu, công cụ tạo báo cáo Những ứng dụng client thường sử dụng cửa sổ, menu, toolbar, button hay thành phần GUI khác, chúng thường truy cập tài nguyên cục tập tin hệ thống, thiết bị ngoại vi máy in Một loại ứng dụng client khác với ứng dụng truyền thống ActiveX control (hiện thay Windows Form control) nhúng vào trang web Internet Các ứng dụng giống ứng dụng client khác truy cập tài nguyên cục Trong khứ, nhà phát triển tạo ứng dụng sử dụng C/C++ thông qua kết nối với MFC sử dụng môi trường phát triển ứng dụng nhanh Application Development) .NET Framework tích hợp diện mạo sản phẩm thành Môi trường phát triển cố định làm đơn giản mạnh mẽ phát triển ứng dụng client Những lớp NET Framework chứa NET Framework thiết kế cho việc sử dụng phát triển GUI Điều cho phép người phát triển nhanh chóng dễ dàng tạo cửa sổ, button, menu, toolbar, thành phần khác ứng dụng viết phục vụ cho lĩnh vực thương mại Ví dụ như, NET cung cấp thuộc tính đơn giản để hiệu chỉnh hiệu ứng visual liên quan đến form Trong vài trường hợp hệ điều hành không hỗ trợ việc thay đổi thuộc tính cách trực tiếp, trường hợp NET tự động tạo lại form Đây nhiều cách mà NET tích hợp việc phát triển giao diện làm cho mã nguồn đơn giản mạnh mẽ Không giống ActiveX control, Windows Form control có truy cập giới hạn đến máy người sử dụng Điều có nghĩa mà nguồn thực thi nhị phân truy cập vài tài nguyên máy người sử dụng (như thành phần đồ họa hay số tập tin giới hạn) mà truy cập đến tài nguyên khác Nguyên nhân bảo mật truy cập mã nguồn Lúc ứng dụng cài đặt máy người dùng an toàn để đưa lên Internet Biên dịch MSIL Trong NET Framework, chương trình khơng biên dịch vào tập tin thực thi mà thay vào chúng biên dịch vào tập tin trung gian gọi Microsoft Intermediate Language (MSIL) Những tập tin MSIL tạo từ C# tương tự tập tin MSIL tạo từ ngôn ngữ khác NET, platform không cần biết ngôn ngữ mã nguồn Điều quan trọng yếu CLR chung (common), runtime hỗ trợ phát triển C# VB.NET Mã nguồn C# biên dịch vào MSIL build project Mã MSIL lưu vào tập tin đĩa Khi chạy chương trình, MSIL biên dịch lần nữa, sử dụng trình biên dịch Just-In-Time (JIT) Kết mã máy thực thi xử lý máy Trình biên dịch JIT tiêu chuẩn thực theo yêu cầu Khi phương thức gọi, trình biên dịch JIT phân tích MSIL tạo sản phẩm mã máy có hiệu cao, mã chạy nhanh Trình biên dịch JIT đủ thông minh để nhận mã biên dịch, ứng dụng chạy việc biên dịch xảy cần thiết, tức biên dịch mã MSIL chưa biên dịch mã máy Khi ứng dụng NET thực hiện, chúng có xu hướng chạy nhanh nhanh nữa, mã nguồn biên dịch dùng lại Do tất ngôn ngữ NET Framework tạo sản phẩm MSIL giống nhau, nên kết đối tượng tạo từ ngơn ngữ truy cập hay dẫn xuất Một đối tượng ngơn ngữ khác NET Ví dụ, người phát triển tạo lớp sở VB.NET sau dẫn xuất C# cách dễ dàng Ngôn ngữ C# Ngôn ngữ C# đơn giản, khoảng 80 từ khóa mười kiểu liệu xây dựng sẵn Tuy nhiên, ngơn ngữ C# có ý nghĩa cao thực thi khái niệm lập trình đại C# bao gồm tất hỗ trợ cho cấu daTABLENAME.Fill(dtTABLENAME); Khai báo Form Load // Khởi động kết nối conn = new SqlConnection(strConnectionString); // Vận chuyển liệu lên DataTable dtTABLENAME daTABLENAME = new SqlDataAdapter("SELECT * FROM TABLENAME",conn); dtTABLENAME = new DataTable(); daTABLENAME.Fill(dtTABLENAME); Giải phóng tài nguyên Chuyển Form chế độ Design View Ở cửa sổ properties form chọn, click Events Nhắp đúp lên kiện FormClosing Viết code cho kiện sau: // Giải phóng tài nguyên dtTABLENAME.Dispose(); dtTABLENAME = null; // Hủy kết nối conn = null; Sử dụng control Các thao tác liệu Xóa (btnXoa): xóa record hành khỏi table KhachHang * Hướng dẫn: - Xóa: Nhắp đúp vào Button Xóa, thực sau // Mở kết nối conn.Open (); try { // Thực lệnh SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.Text; // Lấy thứ tự record hành int r = dgvKHACHHANG.CurrentCell.RowIndex; // Lấy MaKH record hành string strMAKH = dgvKHACHHANG.Rows[r].Cells[0].Value.ToString(); // Viết câu lệnh SQL cmd.CommandText = System.String.Concat("Delete From KhachHang Where MaKH='" + strMAKH + "'"); cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); // Cập nhật lại DataGridView LoadData(); // Thơng báo MessageBox.Show("Đã xóa xong!"); } catch (SqlException) { MessageBox.Show("Khơng xóa Lỗi rồi!!!"); } // Đóng kết nối conn.Close(); + TextBox: txtMaKH, txtTenCty, txtDiachi, txtDienthoai + ComboBox: cbThanhpho - Button: btnThem, btnSua, btnLuu, btnHuy * Yêu cầu: - Thiết kế không cho người dùng thao tác (Enabled = false) load form: + Panel + Các Button Lưu, Hủy - Điều chỉnh lại thuộc tính (properties) DataGridView + AllowUserToAddRows = False + EditMode = EditProgrammatically - Khi Form load: đưa liệu từ table KhachHang lên DataGridView (dgvKHACHHANG), có bẫy lỗi - Nhắp vào Button ReLoad: load lại nội dung table KhachHang lên dgvKHACHHANG - Nhắp vào Button Thêm: + Xóa trống đối tượng Panel + Cho phép nhập thông tin khách hàng vào đối tượng Panel + Không cho phép thao tác Button: Thêm, Sửa, Xóa, Thốt + Cho phép thao tác Button: Lưu, Hủy - Nhắp vào Button Sửa: + Đưa thông tin khách hàng chọn DataGridView lên Panel + Cho phép nhập / sửa thông tin khách hàng vào / đối tượng Panel + Không cho phép thao tác Button: Thêm, Sửa, Xóa, Thốt + Cho phép thao tác Button: Lưu, Hủy - Nhắp vàp Button Lưu + Insert / Update thông tin khách hàng từ Panel vào table KhachHang + ReLoad lại DataGridView - Nhắp vàp Button Hủy: + Xóa trống đối tượng Panel + Không cho phép nhập thông tin khách hàng vào đối tượng Panel Hướng dẫn: - Thiết kế bổ sung Panel với TextBox ComboBox, Panel có Enabled = false - Ờ mức class, bổ sung khai báo biến sau: // Khai báo biến kiểm tra việc Thêm hay Sửa liệu bool Them; - Hàm LoadData(): bổ sung hàng // Đưa liệu lên DataGridView dgvKHACHHANG.DataSource = dtKhachHang; đoạn code sau // Xóa trống đối tượng Panel this.txtMaKH.ResetText(); this.txtTenCty.ResetText(); this.txtDiaChi.ResetText(); this.txtDienThoai.ResetText(); // Không cho thao tác nút Lưu / Hủy this.btnLuu.Enabled = false; this.btnHuy.Enabled = false; this.panel.Enabled = false; // Cho thao tác nút Thêm / Sửa / Xóa / Thốt this.btnThem.Enabled = true; this.btnSua.Enabled = true; this.btnXoa.Enabled = true; this.btnThoat.Enabled = true; - Thêm: nhắp đúp vào button Thêm, bổ sung đoạn code // Kich hoạt biến Them Them = true; // Xóa trống đối tượng Panel this.txtMaKH.ResetText(); this.txtTenCty.ResetText(); this.txtDiaChi.ResetText(); this.txtDienThoai.ResetText(); // Cho thao tác nút Lưu / Hủy / Panel this.btnLuu.Enabled = true; this.btnHuy.Enabled = true; this.panel.Enabled = true; // Không cho thao tác nút Thêm / Xóa / Thoát this.btnThem.Enabled = false; this.btnSua.Enabled = false; this.btnXoa.Enabled = false; this.btnThoat.Enabled = false; // Đưa liệu lên ComboBox this.cbThanhPho.DataSource = dtThanhPho; this.cbThanhPho.DisplayMember = "TenThanhPho"; this.cbThanhPho.ValueMember = "ThanhPho"; // Đưa trỏ đến TextField txtMaKH this.txtMaKH.Focus(); - Sửa: Nhắp đúp vào button Sửa, bổ sung đoạn code // Kích hoạt biến Sửa Them = false; // Đưa liệu lên ComboBox this.cbThanhPho.DataSource = dtThanhPho; this.cbThanhPho.DisplayMember = "TenThanhPho"; this.cbThanhPho.ValueMember = "ThanhPho"; // Cho phép thao tác Panel this.panel.Enabled = true; // Thứ tự dòng hành int r = dgvKHACHHANG.CurrentCell.RowIndex; // Chuyển thông tin lên panel this.txtMaKH.Text = dgvKHACHHANG.Rows[r].Cells[0].Value.ToString(); this.txtTenCty.Text = dgvKHACHHANG.Rows[r].Cells[1].Value.ToString(); this.txtDiaChi.Text = dgvKHACHHANG.Rows[r].Cells[2].Value.ToString(); this.cbThanhPho.SelectedValue = dgvKHACHHANG.Rows[r].Cells[3].Value.ToString(); this.txtDienThoai.Text = dgvKHACHHANG.Rows[r].Cells[4].Value.ToString(); // Cho thao tác nút Lưu / Hủy / Panel this.btnLuu.Enabled = true; this.btnHuy.Enabled = true; this.panel.Enabled = true; // Không cho thao tác nút Thêm / Xóa / Thốt this.btnThem.Enabled = false; this.btnSua.Enabled = false; this.btnXoa.Enabled = false; this.btnThoat.Enabled = false; // Đưa trỏ đến TextField txtMaKH this.txtMaKH.Focus(); - Lưu: Nhắp đúp vào button Lưu, bổ sung đoạn code // Mở kết nối conn.Open(); // Thêm liệu if (Them) { Try { // Thực lệnh SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.Text; // Lệnh Insert InTo cmd.CommandText = System.String.Concat("Insert Into KhachHang Values(" + "'" + this.txtMaKH.Text.ToString() + "','" + this.txtTenCty.Text.ToString() + "','" + this.txtDiaChi.Text.ToString() + "','" + this.cbThanhPho.SelectedValue.ToString() + "','" + this.txtDienThoai.Text.ToString() + "')"); cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); // Load lại liệu DataGridView LoadData(); // Thông báo MessageBox.Show("Đã thêm xong!"); } catch (SqlException) { MessageBox.Show("Không thêm Lỗi rồi!"); } } if (!Them) { Try { // Thực lệnh SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.Text; // Thứ tự dòng hành int r = dgvKHACHHANG.CurrentCell.RowIndex; // MaKH hành string strMAKH = dgvKHACHHANG.Rows[r].Cells[0].Value.ToString(); // Câu lệnh SQL cmd.CommandText = System.String.Concat("Update KhachHang Set TenCty='" + this.txtTenCty.Text.ToString() + "', DiaChi='" + this.txtDiaChi.Text.ToString() + "', ThanhPho='" + this.cbThanhPho.SelectedValue.ToString() + "', DienThoai='" + this.txtDienThoai.Text.ToString() + "' Where MaKH='" + strMAKH + "'"); // Cập nhật cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); // Load lại liệu DataGridView LoadData(); // Thông báo MessageBox.Show("Đã sửa xong!"); catch (SqlException) { MessageBox.Show("Không sửa Lỗi rồi!"); } } // Đóng kết nối conn.Close(); - Hủy: Nhắp đúp vào button Hủy, bổ sung đoạn code // Xóa trống đối tượng Panel this.txtMaKH.ResetText(); this.txtTenCty.ResetText(); this.txtDiaChi.ResetText(); this.txtDienThoai.ResetText(); // Cho thao tác nút Thêm / Sửa / Xóa / Thoát this.btnThem.Enabled = true; this.btnSua.Enabled = true; this.btnXoa.Enabled = true; this.btnThoat.Enabled = true; // Không cho thao tác nút Lưu / Hủy / Panel this.btnLuu.Enabled = false; this.btnHuy.Enabled = false; this.panel.Enabled = false; BAI 6: XÂY DỰNG ỨNG DỤNG Chuẩn bị - Tên máy sử dụng (SERVERNAME) PC-PC (thay đổi cho máy dùng!) - Database sử dụng (DATABASENAME) QuanLyBanHang, gồm có table sau: + ThanhPho + Sanpham + Khachhang + Hoadon + Nhanvien + ChitietHoadon - Với quan hệ (Relationship) sau: - Khởi động SQL Server 2008, tạo DataBase có tên QuanLyBanHang, import liệu từ file QuanLyBanHang.mdb - Khởi động Visual Studio 2008, tạo project (Windows Forms Application), lưu với tên QUANLYBANHANG Sử dụng Control * Yêu cầu: Khi Form1 thực thể hình “Đăng nhập hệ thống” Form2 * Hướng dẫn: - Ờ mức class, khai báo hàm frmLogin() sau: Form frm = new Form2(); frm.ShowDialog(); - Form Load: frmlogin(); (Form2 – Màn hình Đăng nhập - login) Viết chương trình thể hình “Đăng nhập” (login) sau: Form1 – Hệ thống Menu) Thêm vào Form1, hệ thống menu sau Form1 – Menu Hệ thống) * Yêu cầu: Trên Form1, viết lệnh cho menu hệ thống sau - Khi chọn menu “Hệ thống \ Đăng nhập” thực đăng nhập lại hệ thống (Form2) - Khi chọn menu “Hệ thống \ Thốt” dừng chương trình * Hướng dẫn: - Menu “Hệ thống \ Đăng nhập”: Nhắp đúp vào menu “Hệ thống \ Đăng nhập”, gõ vào đoạn code sau: frmlogin(); - Menu “Hệ thống \ Thoát”: Nhắp đúp vào menu “Hệ thống \ Đăng nhập”, gõ vào đoạn code sau: DialogResult traloi; traloi = MessageBox.Show("Chắc không?", "Trả lời", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if ( traloi == DialogResult.OK) Application.Exit(); Sử dụng CSDL a) (Form1 – Menu Danh mục) * Yêu cầu: Trên Form1, viết lệnh cho menu danh mục sau - Viết hàm XemDanhMuc(int intDanhMuc) thực mở Form3 gánForm3.Text = intDanhMuc - Khi chọn menu “Xem Danh mục \ ” thực gọi hàm XemDanhMuc(), với giá trị tương ứng với danh mục chọn * Hướng dẫn: - Ờ mức class, khai báo hàm XemDanhMuc(int intDanhMuc) sau: // Hàm xemm danh mục void XemDanhMuc(int intDanhMuc) { Form frm = new Form3(); frm.Text = intDanhMuc.ToString(); frm.ShowDialog(); } - Menu “Xem Danh mục \ Danh mục Thành Phố”: Nhắp đúp vào menu “Xem Danh mục \ Danh mục Thành Phố”, gõ vào đoạn code sau: XemDanhMuc(1); - Menu “Xem Danh mục \ Danh mục Khách Hàng”: Nhắp đúp vào menu “Xem Danh mục \ Danh mục Khách Hàng”, gõ vào đoạn code sau: XemDanhMuc(2); - Menu “Xem Danh mục \ Danh mục Nhân Viên”: Nhắp đúp vào menu “Xem Danh mục \ Danh mục Nhân Viên”, gõ vào đoạn code sau: XemDanhMuc(3); - Menu “Xem Danh mục \ Danh mục Sản Phẩm”: Nhắp đúp vào menu “Xem Danh mục \ Danh mục Sản Phẩm”, gõ vào đoạn code sau: XemDanhMuc(4); - Menu “Xem Danh mục \ Danh mục Hóa Đơn”: Nhắp đúp vào menu “Xem Danh mục \ Danh mục Hóa Đơn”, gõ vào đoạn code sau: XemDanhMuc(5); - Menu “Xem Danh mục \ Danh mục Chi Tiết Hóa Đơn”: Nhắp đúp vào menu “Xem Danh mục \ Danh mục Chi Tiết Hóa Đơn”, gõ vào đoạn code sau: XemDanhMuc(6); b) (Form3) Thiết kế Form3 theo mẫu sau (Form4 – Menu Quản lý danh mục đơn \ Danh mục Thành Phố ) * Yêu cầu: - Trên Form1: chọn menu “Quản lý danh mục đơn \ Danh mục Thành Phố” mở Form4 - Trên Form4: Thiết kế sau: (Form5 – Menu Quản lý danh mục đơn \ Danh mục Khách Hàng) * Yêu cầu: - Trên Form1: chọn menu “Quản lý danh mục đơn \ Danh mục Khách Hàng” mở Form5 - Trên Form5: thiết kế sau Form6 – Menu Quản lý danh mục đơn \ Danh mục Nhân Viên) * Yêu cầu: - Trên Form1: chọn menu “Quản lý danh mục đơn \ Danh mục Nhân Viên” mở Form6 - Trên Form6: thiết kế sau ... trợ giúp môi trường ngôn ngữ lập trình C# để lập trình + Mơ tả biến dùng chương trình; + Vận dụng quy tắc cú pháp ngơn ngữ lập trình; + Kết nối tới CSDL; + Chương trình có thích (tóm tắt) cho... tơi biên soạn giáo trình: Lập trình Windows Giáo trình biên soạn phù hợp với nghề trường đào tạo nghề phục vụ theo yêu cầu thực tế xã hội Tài liệu tham khảo để biên soạn gồm: - Lập trình môi trường... Windows, Đại học Công nghệ TPHCM, năm 2015 - Giáo trình Lập trình mơi trường Window, Nhà xuất khoa học kỹ thuật, năm 2011 - Tài liệu hướng dẫn thực hành Lập trình mơi trường Windows, Nhà xuất Đại học