Bài giảng Lập trình C: Phần 2 ĐH Phạm Văn Đồng

48 55 0
Bài giảng Lập trình C: Phần 2  ĐH Phạm Văn Đồng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

(NB) Bài giảng Lập trình C: Phần 2 được biên soạn nhằm cung cấp cho các bạn những kiến thức về Quản lý dữ liệu với Microsoft SQL Serve, Truy cập cơ sở dữ liệu với ADO.NET, Report và đóng gói ứng dụng.

Chương 4: Quản lý liệu với Microsoft SQL Server Thời lượng: tiết Mục tiêu: - Hiểu đối tượng hệ quản trị CSDL Microsoft SQL Server, - Viết câu lệnh SQL theo yêu cầu, - Tạo, quản lý CSDL Microsoft SQL Server theo yêu cầu 4.1 Các khái niệm sở liệu MS SQL Server 4.1.1 Các khái niệm sở liệu a) Cơ sở liệu: Một sở liệu (CSDL - Database) lưu trữ máy tính theo quy định định nhằm phục vụ cho Ví dụ: CSDL phục vụ cho việc quản lý chuyến bay hãng hàng không cung cấp thông tin vế số hiệu chuyến bay, nơi xuất phát, nơi đến, số chỗ ngồi, ngày bay tất chuyến bay năm; CSDL phục vụ cho công tác quản lý đào tạo trường chứa liệu phản ánh thông tin học sinh, giáo viên, mơn học, phòng học, b) Hệ quản trị sở liệu: Một hệ quản trị sở liệu (HQT CSDL - Database Management System) phần mềm cho phép người dùng sở liệu Đồng thời HQT CSDL cung cấp môi trường thuận lợi cho việc thông tin lưu trữ sở liệu Một số hệ quản trị sở liệu: Microsoft (MS) Visual Foxpro, MS Access, MS SQL Server, DB2, Oracle, c) Hệ sở liệu: Một hệ sở liệu (Database System) hệ thống phần mềm nhằm quản lý CSDL hệ thống thơng tin cụ thể Như thành phần bên hệ CSDL gồm có: chương trình, CSDL, HQT CSDL Để vận hành hệ CSDL cần có số lượng người d) Mơ hình liệu: Nền tảng cấu trúc sở liệu mơ hình liệu Mơ hình liệu Trang 56 định nghĩa sưu tập công cụ khái niệm dùng cho việc mô tả liệu, mối quan hệ liệu, ngữ nghĩa liệu ràng buộc liệu Các mô hình liệu phổ biến là: mạng, phân cấp, quan hệ, ER, hướng đối tượng e) Mơ hình liệu quan hệ: Mơ hình liệu quan hệ mơ hình liệu tất liệu tổ chức bảng (Table) có mối quan hệ với Mỗi bảng bao gồm cột (Field – trường, thuộc tính), dòng (Record – ghi, bộ) 4.1.2 Khái niệm sở liệu MS SQL Server MS SQL Server HQT CSDL phát triển để tạo quản lý CSDL quan hệ Một CSDL MS SQL Server chứa đối tượng: Tables, Views, Procedures,… Tables MS SQL Server gồm Table có quan hệ với Sau trình bày khái niệm liên quan đến Tables a) Bảng (Table): Bảng bao gồm: - Tên bảng: xác định nhất; - Cấu trúc bảng: tập hợp cột; - Dữ liệu bảng: tập hợp dòng; b) Khóa bảng (Primary Key): Mỗi bảng phải có cột (hoặc tập cột) mà giá trị xác định định dòng tập hợp dòng bảng Cột (tập cột đó) chọn làm khóa c) Mối quan hệ (Relationship): Mối quan hệ bảng thể thông qua ràng buộc giá trị liệu xuất bảng phải có xuất bảng MS SQL Server hỗ trợ mối quan hệ 1-1 1-n d) Khóa ngồi (Foreign Key): Một cột (hoặc tập cột) bảng mà giá trị xác định từ khóa bảng khác gọi khóa ngồi 4.2 Ngôn ngữ SQL SQL (Structured Query Language) ngôn ngữ sử dụng cho HQT CSDL Ngôn ngữ SQL chuẩn đưa ANSI (Amerrican National Standards Institude) ISO (International Standards Organnization) với phiên phiên SQL-92 (phiên đưa vào năm 1992) Mặc dù có nhiều ngơn ngữ khác đưa cho HQT CSDL Trang 57 quan hệ, SQL ngôn ngữ sử dụng rộng rãi nhiều hệ thống CSDL thương mại như: Oracle, SQL Server, DB2, Microsoft Access, … Thơng qua SQL, người sử dụng dễ dàng định nghĩa liệu, thao tác với liệu, … Mặt khác, ngơn ngữ có tính khai báo nên dễ sử dụng mà trở nên phổ biến 4.2.1 Các câu lệnh SQL Câu lệnh Chức a) Thao tác liệu SELECT Truy xuất liệu INSERT Bổ sung liệu UPDATE Cập nhật liệu DELETE Xóa liệu TRUNCATE Xóa toàn liệu bảng b) Định nghĩa liệu CREATE TABLE Tạo bảng DROP TABLE Xóa bảng ALTER TABLE Sửa cấu trúc bảng CREATE FUNCTION Tạo hàm (do người sử dụng định nghĩa) ALTER FUNCTION Sửa đổi hàm DROP FUNCTION Xóa hàm CREATE TRIGGER Tạo trigger ALTER TRIGGER Sửa trigger DROP TRIGGER Xóa trigger 4.2.2 Kiểu liệu Trang 58 Tên kiểu Mô tả CHAR (n) Kiểu chuỗi với độ dài cố định NCHAR (n) Kiếu chuỗi với độ dài cố định hỗ trợ UNICODE VARCHAR (n) Kiểu chuỗi với độ dài xác NVARCHAR (n) Kiểu chuỗi với độ dài xác hỗ trợ UNICODE INTEGER Số nguyên có giá trị từ -231 đến 231 - INT Như kiểu Integer TINYTINT Số nguyên có giá trị từ đến 255 SMALLINT Số nguyên có giá trị từ -215 đến 215 – BIGINT Số nguyên có giá trị từ -263 đến 263 – NUMERIC (p,s) Kiểu số với độ xác cố định DECIMAL (p,s) Tương tự kiểu Numeric FLOAT Số thực có giá trị từ -1.79E+308 đến 1.79E+308 REAL Số thực có giá trị từ -3.40E + 38 đến 3.40E + 38 MONEY Kiểu tiền tệ BIT Kiểu bit (có giá trị 1) DATETIME Kiểu ngày (chính xác đến phần trăm giây) SMALLDATETIME Kiểu ngày (chính xác đến phút) BINARY Dữ liệu nhị phân với độ dài cố định (tối đa 8000 bytes) VARBINARY Dữ liệu nhị phân với độ dài xác (tối đa 8000 bytes) IMAGE Dữ liệu nhị phân với độ dài xác ( Lớn < Nhỏ >= Lớn < Nhỏ Khác !> Không lớn !< Không nhỏ c) Danh sách: IN Nằm danh sách NOT IN Không nằm danh sách d) Giới hạn liệu: BETWEEN Giá trị BETWEEN a AND b nghĩa (a ≤ Giá trị ≤ b) Trang 60 NOT BETWEEN Giá trị NOT BETWEEN a AND b nghĩa (Giá_trị < a) AND (Giá trị > b) LIKE Mô tả khn dạng liệu cần tìm kiếm có sử dụng ký tự đại diện: % : Chuỗi ký tự _ : Một ký tự [] : Ký tự giới hạn định [^] : Ký tự không nằm giới hạn định 4.2.4 Một số hàm thường dùng Công dụng Tên hàm a) Ngày (Date: ngày/tháng/năm): GetDate() Lấy ngày Day(Date) Lấy ngày tháng ngày Month(Date) Lấy tháng năm ngày Year(Date) Lấy năm ngày b) Chuỗi (string: chuỗi; m, n: độ dài): Left(string, n) Trích từ chuỗi string n ký tự từ trái sang Right(string, n) Trích từ chuỗi string n ký tự từ phải sang Substring(string, m, n) Trích từ chuỗi string n ký tự từ vị trí m Ltrim(string) Cắt bỏ khoảng trắng thừa bên trái chuỗi string Rtrim(string) Cắt bỏ khoảng trắng thừa bên phải chuỗi string Len(string) Độ dài chuỗi string Trang 61 4.2.5 Các câu lệnh SQL thường dùng Để thuận tiện cho việc minh họa lệnh SQL, giảng đưa CSDL mẫu Hình 4-1: LOP SINHVIEN # malop # masv tenlop tensv tengvcn ngaysinh magvcn quequan malop Hình 4-1 Mơ hình liệu mẫu a) Câu lệnh Insert: Cú pháp: INSERT INTO VALUES (danh sách giá trị) Ví dụ: Bổ sung thêm sinh viên vào bảng SINHVIEN: INSERT INTO [SINHVIEN] VALUES („SV010‟, ‟Nguyễn Văn A‟, ‟12/02/1992‟, ‟Sơn Tịnh‟, ‟L1001‟) Trong trường hợp bổ sung liệu cho số trường, ta phải định tên trường sau tên bảng: INSERT INTO (danh sách trường) VALUES (danh sách giá trị) Ví dụ: Bổ sung thêm sinh viên vào bảng SINHVIEN: INSERT INTO [SINHVIEN]([masv], [tensv], [ngaysinh],[quequan]) VALUES („SV011‟,‟Trần Thanh B‟,‟22/11/1992‟,‟Sơn Hà‟) b) Câu lệnh Update: Cú pháp: UPDATE SET = Trang 62 [,…, = ] [FROM ] [WHERE ] Ví dụ: Sửa lại q qn sinh viên có mã “SV011” thành “Bình Sơn”: UPDATE [SINHVIEN] SET [quequan]=‟Bình Sơn‟ WHERE [masv]=‟SV011‟ c) Câu lệnh Delete: Cú pháp: DELETE FROM [FROM ] [WHERE ] Ví dụ: Xóa sinh viên có mã “SV011”: DELETE FROM [SINHVIEN] WHERE ([masv]=‟SV011‟) d) Câu lệnh Select: Cú pháp: SELECT FROM [WHERE ] [GROUP BY [HAVING ]] [ORDER BY ] Trong đó: - Mệnh đề SELECT: danh sách trường gồm: tên trường bảng mệnh đề FROM, tên trường mới, … Giá trị trường tạo thành biểu thức, hàm xây dựng sẵn - Mệnh đề FROM: danh sách bảng tên bảng Có thể dùng bí danh (As) cho bảng - Mệnh đề WHERE: điều kiện lọc - Mệnh đề GROUP BY: dùng để nhóm bảng ghi theo số trường Kết lọc mệnh đề HAVING BY Trang 63 - Mệnh đề ORDER BY: xếp kết theo trường Ví dụ: Câu lệnh lấy danh sách magv, tengv giáo viên: SELECT [magv],[tengv] FROM [GIAOVIEN] Ví dụ: Câu lệnh lấy danh sách magv, tengv, ngaysinh, trinhdo giáo viên: SELECT * FROM [GIAOVIEN] Ví dụ: Câu lệnh lấy danh sách masv, tensv, ngaysinh, quequan, tenlop sinh viên: SELECT [masv], [tensv], [tensv], [ngaysinh],[quequan], [tenlop] FROM ([LOP] INNER JOIN [SINHVIEN] ON [LOP].[malop] =[SINHVIEN].[malop]) Ví dụ: Câu lệnh lấy danh sách masv, tensv sinh viên có quê quán “Sơn Tịnh”: SELECT [masv],[tensv] FROM [LOP] WHERE ([quequan]=‟Sơn Tịnh‟) Ví dụ: Câu lệnh lấy danh sách masv, tensv sinh viên sinh năm 1994 có quê “Sơn Hà”: SELECT [masv],[tensv] FROM [SINHVIEN] WHERE (Year([ngaysinh])=1994)And([quequan]=‟Sơn Hà‟) Ví dụ: Câu lệnh lấy danh sách tenlop, “số sinh viên lớp” tất lớp xếp theo tên lớp: SELECT [tenlop],count([masv]) As CountOfmasv FROM [LOP] INNER JOIN [SINHVIEN] ON [LOP].[malop]=[SINHVIEN].[malop] GROUP BY [tenlop] ORDER BY [tenlop] Ví dụ: Câu lệnh lấy danh sách malop, tenlop, “số sinh viên lớp” lớp có sĩ số lớn 19: Trang 64 SELECT [malop],[tenlop],count([masv]) As CountOfmasv FROM [LOP] INNER JOIN [SINHVIEN] ON [LOP].[malop]=[SINHVIEN].[malop] GROUP BY [LOP].[malop],[tenlop] HAVING (count([masv])>19) 4.3 Câu hỏi tập 1) Tạo CSDL Server 2) Viết câu lệnh SQL phục vụ cho việc quản lý bảng LOP 3) Viết câu lệnh SQL phục vụ cho việc quản lý bảng SINHVIEN 4) Viết thủ tục lưu trữ phục vụ cho việc quản lý bảng LOP 5) Viết thủ tục lưu trữ phục vụ cho việc quản lý bảng SINHVIEN 6) Viết lệnh SQL nhằm: - Kiểm tra tồn CSDL có MS SQL Server - Thêm Một CSDL - Thêm bảng LOP, SINHVIEN quan hệ lên CSDL 7) Hãy cho biết lợi ích thủ tục lưu trữ 4.4 Bài mẫu Thiết kế CSDL, nhập liệu viết khung nhìn, hàm chức theo yêu cầu sau: - Tạo CSDL có tên QLSV với thiết kế sau: Trang 65 if (index > -1) { if (MessageBox.Show("Bạn có chắn xóa khơng?", "Cẩn thận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { string masv = dtSV.Rows[index][0].ToString(); MySinhVien sv = new MySinhVien(); sv.MaSV = masv; kn.UpdateData(sv.GetDeleteSQL()); MessageBox.Show("Xóa thành cơng."); LamMoiDS(); } } } } } Trang 89 Chương 6: Report đóng gói ứng dụng Thời lượng: tiết Mục tiêu: - Sử dụng điều khiển đơn giản thiết kế Report, - Thiết kế giao diện Report theo yêu cầu, - Biết lợi ích việc đóng gói ứng dụng, - Đóng gói ứng dụng C# đơn giản 6.1 Report 6.1.1 Tổng quan Report a) Khái niệm: Report mẫu báo cáo để in Chúng ta hình dung, hóa đơn bán hàng siêu thị, hóa đơn bán hàng quán cà phê, kê khai thuế công ty,… xem Report Về phương diện đó, Report xem đầu hệ thống b) Xuất kết Report Form ReportViewer - Data Report Choosse Report DataSet Hình 6-1 Sự tương quan Form, Report ReportViewer Để xuất liệu máy in, cần đến điều khiển bản: Form, Report ReportViewer Sự tương quan điều khiển thể Trang 90 tronh Hình 6-1 Trong đó: - Report điều khiển việc hiển thị kết Muốn kết hiển thị thiết kế Report - ReportViewer hiển thị kết Report kết nối đến máy in - Form chứa liệu ReportViewer Muốn in liệu cần gửi liệu đến Form Ngồi ra, liệu cho Report lấy từ DataSet 6.1.2 Tiến trình xây dựng Report a) Xác định thơng tin hiển thị Report: Đây bước tiến trình xây dựng Report Ở bước này, cần xác định thông tin cần hiển thị Report Thông tin Report thường gồm: thông tin quan chủ quản, thông tin chức năng, kết trình làm việc,… b) Xác định liệu Report: Sau có thông tin hiển thị Report, chia thông tin thành hai loại: thông tin chung (các thông tin không thay đổi, ngày giờ, số trang,…) liệu (các thông tin lấy từ CSDL trình thực chức hệ thống) Đối với thông tin chung, việc xác định chúng dễ dàng, chí xác định cách cố định Tuy nhiên, nên cân nhắc việc lưu vào CSDL số thơng tin chung thay đổi theo thời gian Đối với liệu, chia làm hai loại: nguyên thủy (lấy cách dễ dàng từ CSDL) dẫn xuất (tính tốn từ liệu ngun thủy) Thơng thường, liệu nguyên thủy lấy câu lệnh SQL đơn giản liệu dẫn xuất sử dụng hàm tính tốn từ liệu ngun thủy c) Thiết kế Report: Sau có thơng tin, liệu Report, tiến hành thiết kế Report Chúng ta sử dụng điều khiển hỗ trợ cho Report để vẽ lên Report Khi thiết kế, cần đặt tên cho điều khiển hiển thị liệu cho dễ nhớ Việc tạo thuận lợi cho bước sau d) Điền liệu cho Report: Phần cuối tiến trình việc điền liệu cho Report Chúng ta thực việc lấy liệu tương tự chương trước Tuy nhiên, việc gán liệu phụ thuộc vào loại trường 6.1.3 Các công cụ hỗ trợ tạo Report Hiện tại, NET thiết kế nhiều loại Report Sau đây, tìm hiểu Trang 91 vài điều khiển hỗ trợ cho việc thiết kế Report a) Report Wizard: Là loại Report mà bước việc thiết kế hỗ trợ tốt, người sử dụng việc chọn lựa liệu, cách hiển thị theo ý Report Wizard cách tiếp cận khuyến cáo cho người dùng chưa nắm rõ Report cách thiết kế Report b) Report: Report điều khiển thường dùng để thiết kế mẫu in ngắn, trang giấy Cấu trúc Report: Phần Mô tả Page Header Xuất trang Vùng chủ yếu thể tiêu đề, số trang, ngày giờ,… Body Thể nội dung Page Footer Xuất cùng trang Vùng chủ yếu thể tiêu đề, số trang, ngày giờ,… Report Paramaters Không nằm thiết kế Report, dùng để chứa liệu truyền tới Report Các điều khiển hỗ trợ cho Report gồm điều khiển có cơng cụ số điều khiển nhúng Sau số điều khiển thông dụng: Ý nghĩa Tên Text Box Hiển thị thông tin dạng Text Line Thể đường kẻ Chúng ta dùng nhiều đường kẻ để vẽ bảng Table Thể bảng liệu bảng CSDL Matrix Thể liệu kiểu ma trận Rectangle Khung vật chứa phần tử Report khác List Chứa danh sách Report Image Hiển thị hình ảnh Subreport Report Chart Đồ thị, biểu đồ Trang 92 Để hiển thị Report, dùng MicrosoftReportViewer Cách truyền liệu cho Report: 1) Truyền cho tham số (Parameters): Giả sử Report report1 có TextBox để hiển thị mã sinh viên (=Parameters!masv.Value) họ tên sinh viên (=Parameters!tensv.Value) từ tham số masv tensv Report Parameters ReportViewer reportViewer1 dùng để hiển thị report1 Khi cách truyền liệu cho tham số masv tensv sau: ReportParameter[] parms = new ReportParameter[2]; parms[0] = new ReportParameter("masv", '17D480201007'); parms[1] = new ReportParameter("tensv", 'Lê Quang Đạo'); this.reportViewer1.LocalReport.SetParameters(parms); 2) Truyền cho Table: Giả sử cần thị bảng liệu danh sách sinh viên (masv, tensv) lên Report cách sử dụng Table, ta thực hiện: - Đầu tiên, tạo DataSet có tên ds_sv dsSV gồm cột liệu: masv, tensv - Tạo Report có tên report1 có chứa Table tb1 - Gán thuộc tính DataSetName tb1 ds_sv - Cột tb1 dùng để hiển thị masv (=Fields!masv.Value), cột tb1 dùng để hiển thị tensv (=Fields!tensv.Value) - Thiết kế Form có chứa reportViewer1 dùng để hiển thị report1 - Trên Form chứa Report reportViewer1 ta thực hiện: + Lấy liệu danh sách sinh viên gồm (masv, tensv) Form gán vào biến DataTable dtsv + Truyền liệu từ tb1 sang report1: this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ds_sv", dtsv)); c) Crystal Report: Crystal Report loại Report mở rộng Giả sử ta cần in kết điểm thi tuyển sinh theo phòng xếp theo tên thí sinh Kết xem Report, thường sử dụng Crystal Report để in Một Crystal Report thường gồm phần sau: Trang 93 Phần Mô tả Report Header Xuất trang Report Trong bảng điểm phần tiêu ngữ, tiên quan, tên văn bản,… xem Report Header Page Header Xuất sau Report Header trang xuất trang Vùng chủ yếu thể số trang, ngày giờ,… Group Header Xuất nơi bắt đầu nhóm Trong bảng điểm thơng tin phòng thi xem Group Header Detail Các dòng thể thơng tin cụ thể Thơng thường, dòng tương ứng với dòng Table CSDL Trong bảng điểm dòng thơng tin sinh viên (thông tin chung, điểm) xem thuộc Detail Group Footer Xuất nơi kết thúc nhóm Trong bảng điểm thơng tin thơng kê phòng thi xem Group Footer Page Footer Xuất cuối trang có ý nghĩa tương tự Page Header Report Footer Xuất cuối trang cuối Report Trong Report phần ký tên quan xem Report Footer Các điều khiển hỗ trợ cho Crystal Report gồm điều khiển có cơng cụ số điều khiển nhúng Sau số điều khiển thông dụng: Ý nghĩa Tên Text Object Hiển thị thông tin dạng Text Line Object Thể đường kẻ Chúng ta dùng nhiều đường kẻ để vẽ bảng Box Object Thể khung cho đối tượng Picture Hiển thị hình ảnh OLE Object Hiển thị đối tượng nhúng Trang 94 Chart Hiển thị biểu đồ, đồ thị Subreport Report Field Explorer công cụ để hiển thị trường Crystal Report có loại trường sau: Ý nghĩa Tên Database Fields Các trường CSDL mà Report đưa vào Formula Fields Các trường mà tính dựa vào cơng thức Parameter Fields Các trường tham số Report Group Name Fields Các trường nhóm Running Total Fields Các trường tính tốn dựa vào thống kê Special Fields Các trường đặc biệt liên quan đến Report số trang, ngày giờ,… Unbound Fields Các trường mà giá trị không phụ thuộc vào giá trị khác Trong trường trên, trường cần thiết lập trường Database Các trường thường lấy từ CSDL thông qua DataSet Để hiển thị Crystal Report, dùng CrystalReportViewer Sử dụng CSDL quản lý sinh viên (QLSV), xây dựng Report in tất sinh viên với thiết kế Crystal Report sau: Trang 95 Lưu ý: cần gán cho Database Fields Report Table ban đầu Table DataTable DataSet hay Table CSDL Giả sử Crystal Report có tên rp, Crystal Report Viewer có tên crp, trường tính tốn có thứ tự trên, sau đoạn mã lệnh gán liệu cho Report rptSINHVIEN rp = new rptSINHVIEN(); rp.SetDataSource(sv); rp.DataDefinition.FormulaFields[0].Text = "{SINHVIEN.masv}"; rp.DataDefinition.FormulaFields[1].Text = "{SINHVIEN.tensv}"; rp.DataDefinition.FormulaFields[2].Text = "{SINHVIEN.ngaysinh}"; rp.DataDefinition.FormulaFields[3].Text = "{SINHVIEN.gioitinh}"; rp.DataDefinition.FormulaFields[4].Text = "{SINHVIEN.quequan}"; rp.DataDefinition.FormulaFields[5].Text = "count({SINHVIEN.masv})"; crp.ReportSource = rp; crp.Refresh(); 6.2 Đóng gói ứng dụng 6.2.1 Lợi ích Việc đóng gói ứng dụng có nhiều lợi ích Sau số lợi ích việc đóng gói ứng dụng MS Visual Studio NET: - Sẽ tạo gói chứa đầy đủ thành phần ứng dụng - Tự động sinh Install Uninstall cho người dùng - Giúp người dùng tạo thư mục Shortcut dễ dàng - Người dùng dễ dàng kiểm sốt tình huống: cài đặt lần đầu, gỡ bỏ hay sửa chữa 6.2.2 Các thành phần đưa vào gói ứng dụng Đối với ứng dụng nhỏ, đơn giản gói ứng dụng cần file chương trình Tuy nhiên, ứng dụng lớn chương trình cần chia thành nhiều phần phần cần tách biệt Sau số thành phần Trang 96 thường đưa vào gói ứng dụng: - File chương trình (file chạy) - Các file thư viện (*.DLL) - Framework (đối với nơi phân phối bị hạn chế khả kết nối internet) - Hình ảnh, âm ứng dụng - CSDL dùng loại Server Express - Các tập tin đầu vào, đầu chương trình - Tài liệu ứng dụng, hướng dẫn sử dụng - Các công cụ, thư viện mà chương trình yêu cầu 6.2.3 Setup Project MS Visual Studio NET có nhiều loại đóng gói tùy theo mục đích khác Phần sau giới thiệu loại đóng gói Setup Project Kiểu đóng gói cho phép chung ta tạo nên gói để phân phối ứng dụng Desktop Cấu trúc gói chia làm ba phần chính: Application Folder, User’s Desktop User’s Programs Menu Trong đó: - Application Folder: thư mục chương trình máy người dùng ứng dụng Thư mục thường chứa toàn thành phần để ứng dụng chạy - User’s Desktop: thư mục hình Desktop chương trình Thơng thường, thư mục này, người ta tạo shortcut file chương trình Application Folder - User’s Programs Menu: thư mục chương trình Programs (dễ nhìn thấy Windows trở lại) Thông thường, thư mục người ta tạo thư mục theo phân cấp, phân chia để chứa shortcut đến thành phần ứng dụng Ngoài ra, cấu trúc gói nhiều thư mục khác tương ứng với thư mục User Windows Một số có thư mục User's Application Data Folder Thư mục thường dùng để chứa file sở liệu thay đổi ứng dụng (vì thư mục Application Folder không cho phép thay đổi liệu) 6.3 Câu hỏi tập 1) Xây dựng Report in danh sách sinh viên theo lớp 2) Sử dụng Line Object, kẻ khung cho Report câu 1) 3) Đóng gói chương trình mà anh (chị) cho phức tạp Trang 97 6.4 Bài mẫu Xây dựng DataSet, Report liên kết vào Form xây dựng trong Chương sau: - Xây dựng DataSet có tên dsTKGT với nguồn View có tên View_TKGT xây dựng mẫu Chương - Dùng DataSet dsTKGT Chart, thiết kế Report có tên rpTKGT.rdlc sau: - Xây dựng Form xem thống kê: Trang 98 Form chứa MicrosoftReportViewer hiển thị Report rpTKGT vừa xây dựng - Bổ sung mã lệnh vào Form frmLOP để nối Form hiển thị Report thống kê vào Form quản lý lớp: private void btIn_Click(object sender, EventArgs e) { frmTKGT f = new frmTKGT(); f.ShowDialog(this); } - Thiết kế Report có tên rpHoanNVQS.rdlc sau nhằm in giấy xác nhận sinh viên học trường: Trang 99 - Tạo tham số cho Report có kiểu String là: s1, s2, s3, s4 - Thiết kế Form có tên frmInXNSV để hiển thị Report rpHoanNVQS.rdlc MicrosoftReportViewer Form có tên rp + Kết in xác nhận sinh viên sau: Trang 100 - Mã lệnh Form frmInXNSV: using using using using System; System.Data; System.Windows.Forms; Microsoft.Reporting.WinForms; namespace Sample { public partial class frmInXNSV : Form { string masv = null; KetNoi kn = new KetNoi(); public frmInXNSV(string masv) { InitializeComponent(); this.masv = masv; } private void frmInXNSV_Load(object sender, EventArgs e) { DataTable dt = kn.GetTTSV(masv); DataRow dr = dt.Rows[0]; string ns = DateTime.Parse(dr["ngaysinh"].ToString()).ToShortDateString(); string s1 = "Xác nhận anh (chị): " + dr["hotensv"] + "; Mã số sinh viên: " + masv + "; Ngày sinh: " + ns + "; Giới tính: " + dr["phai"] + "."; string s2 = "Là sinh viên năm thứ " + dr["namht"] + ", lớp " + dr["malop"] + ", Khoa " + dr["tenkhoa"] + ", hệ đào tạo qui tập trung trường."; string s3 = "Thời gian khoá đào tạo: từ tháng 9/" + dr["khoa"] + " đến tháng 7/" + dr["namkt"] + "."; DateTime homnay = DateTime.Now; string s4 = "Quảng Ngãi, ngày " + homnay.Day + " tháng " + homnay.Month + " năm " + homnay.Year; ReportParameter[] parms = new ReportParameter[4]; parms[0] = new ReportParameter("s1", s1); parms[1] = new ReportParameter("s2", s2); parms[2] = new ReportParameter("s3", s3); parms[3] = new ReportParameter("s4", s4); rpXN.LocalReport.SetParameters(parms); rpXN.RefreshReport(); rpXN.SetDisplayMode(DisplayMode.PrintLayout); rpXN.ZoomMode = ZoomMode.Percent; rpXN.ZoomPercent = 100; } Trang 101 } } - Bổ sung mã lệnh vào Form frmXemSV để nối Form hiển thị Report xác nhận sinh viên vào Form xem sinh viên: private void btIn_Click(object sender, EventArgs e) { int index = lstSV.SelectedIndex; if (index > -1) { frmInXNSV f = new frmInXNSV( dtSV.Rows[index][0].ToString() ); f.ShowDialog(this); } } Trang 102 TÀI LIỆU THAM KHẢO [1] Microsoft, C# Language Specification 1.2, 2003 [2] Microsoft, C# Language Specification 2.0, 2005 [3] Dương Quang Thiện, Lập trình Visual C# nào?, NXB TH TP.HCM, 2005 [4] Nguyễn Ngọc Bình Phương, Thái Thanh Phong, Các giải pháp lập trình C#, NXB Giao thông Vận tải, 2006 [5] Simon Robinson, Burt Harvey,… , Profession C# (2nd Edition), Wrox Press, 2002 Trang 103 ... có giá trị từ -23 1 đến 23 1 - INT Như kiểu Integer TINYTINT Số nguyên có giá trị từ đến 25 5 SMALLINT Số nguyên có giá trị từ -21 5 đến 21 5 – BIGINT Số nguyên có giá trị từ -26 3 đến 26 3 – NUMERIC... Trang 59 2, 147,483,647 bytes) TEXT Dữ liệu kiếu chuỗi với độ dài lớn (tối đa 2, 147,483,647 ký tự) NTEXT Dữ liệu kiếu chuỗi với độ dài lớn hỗ trợ UNICODE (tối đa 1,073,741, 823 ký tự) 4 .2. 3 Toán... sung thêm sinh viên vào bảng SINHVIEN: INSERT INTO [SINHVIEN] VALUES („SV010‟, ‟Nguyễn Văn A‟, ‟ 12/ 02/ 19 92 , ‟Sơn Tịnh‟, ‟L1001‟) Trong trường hợp bổ sung liệu cho số trường, ta phải định tên

Ngày đăng: 08/06/2020, 16:18

Từ khóa liên quan

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

Tài liệu liên quan