1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình lập trình quản lý

262 1,9K 4

Đ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

Thông tin cơ bản

Định dạng
Số trang 262
Dung lượng 12,06 MB

Nội dung

Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý Giáo trình lập trình quản lý

Trang 1

Phân công:

MỤC LỤC

I Giới Thiệu 2

1 Giới thiệu về namespace System.xml (introduction to namespace System.xml) 2

2 Đọc và Ghi XML (Read and write Streamed XML) 4

2.1 Sử dụng lớp XmlTexReader 4

2.2 Các phương thức Read 6

2.3 Lấy thuộc tính của dữ liệu: 7

2.4 Sử dụng lớp XmlValidatingReader 8

2.5 Sử dụng Schema property 9

2.6 Sử dụng lớp XmlTextWriter 9

II Hướng dẫn làm demo Chương trình kết nối C d ng ile hình 11

 Bước 1: Tạo project mới có tên là DemoKetNoiSQL 11

 Bước 2: Tao form với các control như hình bên dưới 11

 Bước 3: Tạo file xml trong thư mục debug của chương trình 12

 Bước 4: Thêm class DataProvide vào chương như hình bên dưới: 13

 Bước 5:Tạo thêm class SQLInformation 16

 Bước 6: Ta viết các hàm sự kiện cho form 17

 Bước 7: Vào SQL tạo một cơ sở dữ liệu tên là QLBH vậy là chúng ta có thể kết nối thành công 20 III Câu hỏi 20

1 Câu hỏi Thực hành: 20

2 Câu hỏi lý thuyết: 20

3 Câu hỏi trắc nghiệm 21

Trang 2

I Giới Thiệu

XML (eXtensible Markup Langue) đóng một vai trò quan trọng trong NET Không chỉ

vì NET cho phép bạn sử dụng XML trong các ứng dụng của bạn, mà bản thân nó cũng sử dụng XML cho những file cấu hình và tài liệu mã nguồn, như SOAP, các dịch vụ web và Ado.net Do

đó tìm hiểu về các xử lý XML trong Net với ngôn ngữ C# là một điều nên làm Bài viết này

1 Giới thiệu về namespace System.xml (introduction to namespace System.xml)

- namespace System.xml trong NET cung cấp một số lớp hỗ trợ cho việc xử lý XML Dưới đây là những lớp đọc và ghi XML

Tên lớp Giải thích

XmlReader

Một lớp đọc trừu tượng nhanh và non-cached dữ liệu XML

XmlReader được thiết kế giống như bộ phân tách SAX

Trang 3

- Một vài lớp hữu ích khác trong XML:

XmlDataDocument

Mở rộng của XmlDocument Đây là một tài liệu có thể được tải

từ dữ liệu XML hoặc từ dữ liệu trong một ADO.NET DataSet Cho phép hòa trộn XML và dữ liệu quan hệ trong cùng một view

XmlResolver

Một lớp trừu tượng dùng giải quyết các tài nguyên XML ngoài như DTD và tham chiếu sơ đồ Cũng dùng để xử lí các thành phần <xsl:include> và <xsl:import>

Trang 4

2 Đọc và Ghi XML (Read and write Streamed XML)

- Cả 2 lớp XmlReader và XmlWriter đều là những lớp

trừu tượng Hình dưới đây minh họa các lớp kế thừa từ 2

lớp này:

+ XmlTextReader và XmlTextWriter làm việc chung trên

các đối tượng stream hoặc các đối tượng

TextReader/TextWriter trong namespace System.IO

+ XmlNodeReader sử dụng XmlNode cho một nguồn

thay cho một stream XmlValidatingReader thêm DTD

với sơ đồ tích hợp và tất nhiên là cả dữ liệu hợp lệ

2.1 Sử dụng lớp XmlTexReader

- XmlTexReader rất giống SAX Một trong những khác biệt lớn nhất: SAX là một mô hình kiểu push, còn XmlTextReader là một mô hình pull, ở đó dữ liệu được kéo vào ứng dụng yêu cầu nó Nó tạo ra một mô hình lập trình dễ dàng và trực quan hơn Một lợi ích khác của mô hình pull là có thể lựa chọn dữ liệu để gởi đến ứng dụng: nếu bạn không muốn tất cả các dữ liệu,

vì không cần xử lý tất cả chúng Còn trong mô hình push, tất cả dữ liệu XML cần phải được xử

lý bởi ứng dụng, mặc cho nó có muốn hay không

- Để sử dụng lớp này bạn cần khai báo :

using System.Xml;

- Bây giờ hãy mở visual studio của bạn lên:

+ Kéo vào một ListBox và một Button như hình bên;

+ Sau đó viết sự kiện cho button Load XML như sau:

Trang 5

- Kết quả khi chạy chương trình trên và click vào button LoadXML như hình bên dưới

- XmlTextReader này sử dụng khá đơn giản

+ Trước tiên chúng ta tạo ra một đối tượng string chứa dường dẫn tới file xml Sau đó tạo một đối tượng XmlTextReader mới với tham số là đường dẫn tới file xml

+ Khi chương trình chạy đến vòng lặp while, phương thức Read sẽ được di chuyển sang mục tiêu đầu tiên trong tài liệu Nó tiêu biểu cho các mục khai báo XML

Trang 6

Trong ví dụ này, chúng ta duyệt qua từng mục và so sánh xtr.NodeType với bộ

XmlNodeType, và thêm các mục được tìm thấy vào listbox

2.2 Các phương thức Read

- Có một vài cách di chuyển trong tài liệu Như bạn đã thấy trong ví dụ trên, Read() có thể di chuyển sang mục tiếp theo Chúng ta có thể xem nêu mục đó có giá trị (HasValue()) , hoặc nếu mục đó có thuộc tính (HasAttributes()) Chúng ta cũng có thể dùng phương thức ReadStartElement(), để kiểm tra xem nếu mục hiện tại là thành phần khởi đầu, và chuyển sang mục tiếp theo Nếu không phải là mục khởi đầu một ngoại lệ XmlException sẽ được phát ra Việc gọi phương thức này giống như gọi phương thức IsStartElement(), bởi một Read()

- Các phương thức ReadString() và ReadChars() đều đọc dữ liệu văn bản từ một thành tố ReadString() tra về một chuỗi dữ liệu, trong khi ReadChars() trả về một mảng

dữ liệu kiểu char

- ReadElementString() cũng giống như ReadString(), ngoại trừ việc bạn không phải truyền tên của một thành tố Nếu nội dung của mục tiếp theo không phải là một start tag, hoặc nếu tham số Name không không phải là Name của mục hiện hành, thì một ngoại lệ sẽ được phát ra

- Dưới đây là ví dụ chỉ ra cách sử dụng ReadElementString(), lưu ý khai báo:

1 using System.IO;

2 private void btnLoadXML_Click(object sender, EventArgs e)

3 {

4 string fileName = “Book.xml”;

5 FileStream fs = new FileStream(fileName, FileMode.Open);

6 XmlTextReader xtr = new XmlTextReader(fs);

Trang 7

Element của named title, mệnh đề else phát ra một phương thức Read() để di chuyển sang mục tiếp theo Khi chúng ta tìm thấy một mục thỏa điều kiện, chúng ta trả kết quả của ReadElementString() cho listbox Nó cho phép các tựa sách được liệt kê trong listbox Chú ý rằng chúng ta không tạo ra một lời gọi Read() sau khi một ReadElementString() thực hiện thành công Bởi vì ReadElementString() cũng sẽ di chuyển sang mục tiếp theo

- Nếu bạn bỏ && tr.Name==”title” trong mệnh đề if, bạn sẽ nhận được ngoại lệ XmlException Nếu nhìn vào file dữ liệu, bạn sẽ thấy thành tố đầu tiên mà

MoveToContent() tìm ra là <bookstore> Tất nhiên nó vì nó không chứa một kiểu text chuẩn, nên ReadElementString() phát ra một ngoại lệ XmlException

2.3 Lấy thuộc tính của dữ liệu:

- Khi bạn chạy các ví dụ trên, bạn nhận ra rằng khi các mục được đọc, bạn không thấy bất kì thuộc tính nào cả Đó là vì các thuộc tính không nằm trong tài liệu Khi đang đứng trên một mục, bạn có thể kiểm tra các thuộc

tính và có thể lấy giá trị của bất kì giá trị thuộc tính

nào

- Thuộc tính HasAttributes sẽ trả về giá trị true nếu có bất kì thuộc tính nào còn không sẽ trả về

false Thuộc tính AttributeCount sẽ cho bạn biết có

bao nhiêu thuộc tính, và phương thức GetAttribute()

sẽ trả về một thuộc tính thông qua tên hoặc chỉ mục

Nếu bạn muốn lặp qua các thuộc tính bạn có thể

dùng các phương thức MoveToFirstAttribute() và MoveToNextAttribute()

- Dưới đây là một ví dụ về việc lặp qua các thuộc tính

1.string fileName = “Book.xml”;

Trang 8

2.FileStream fs = new FileStream(fileName, FileMode.Open);

3.XmlTextReader xtr = new XmlTextReader(fs);

4.while (xtr.Read()) 5.{

6.if (xtr.NodeType == XmlNodeType.Element) 7.{

8.for (int i = 0; i < xtr.AttributeCount; i++) 9.{

2.4 Sử dụng lớp XmlValidatingReader

- Nếu bạn muốn xác nhận một tài liệu XML, bạn sẽ cần phải sử dụng lớp

XmlValidatingReader Nó chứac các khả năng giống như XmlTextReader (Cả hai đều xuất phát

từ XmlReader) nhưng XmlValidatingReader có thêm thuộc tính ValidationType, thuộc tính Schemas và SchemaType

- Nếu bạn gán thuộc tính ValidationType giá trị xác nhận mà bạn muốn Giá trị hợp lệ của thuộc tính này được liệt kê trong bảng sau:

Nếu một không gian tên với tiếp đầu ngữ MSXML x-schema được tìm thấy, nó sẽ load và xử lí sơ đồ XDR và trả về các thuộc tính mặc định đã

Trang 9

được định nghĩa

DTD Phù hợp theo chuẩn DTD

Schema Phù hợp theo sơ đồ XSD

XDR Phù hợp theo sơ đồ XDR

None Không giá trị hợp lệ nào được thực thi

- Khi một thuộc tính trong này được chọn, Một ValidationEventHandler cần phải được gán Đây

là một sự kiện được tạo ra do các lỗi Bạn có thể tác động lại lỗi theo các mà bạn cho là phù hợp

2.5 Sử dụng Schema property

Schemas property của XmlValidatingReader chứa một XmlSchemaCollection, có thể tìm thấy trong không gian tên System.Xml.Schema Tập hợp này tổ chức load lại loaded XSD và XDR schemas Nó cực nhanh đặc biệc là khi bạn cần kiểm tra sự hợp lệ của nhiều tài liệu khác nhau, vì sơ đồ sẽ không được load mỗi khi kiểm tra Các bước sử dụng thuộc tính này như sau, bạn tạo một đối tượng XmlSchemaCollection Phương thức Add(), nằm trong một XmlSchemaCollection, có bốn quá tải Bạn có thể truyền nó cho một đối tượng xuất phát từ XmlSchema, một đối tượng xuất phát từ

XmlSchemaCollection, một chuỗi không gian tên với chuỗi URI của file sơ đồ và một đối tượng xuất phát từ XmlReader chứa trong sơ đồ

2.6 Sử dụng lớp XmlTextWriter

- Lớp XmlTextWriter cho phép bạn xuất XML thành một chuỗi, một file hoặc một đối tượng a TextWriter Giống như XmlTextReader, nó là một kiểu forward-only, non-cached XmlTextWriter có thể cấu hình cao, cho phép bạn chỉ rõ những thứ như cho phép thục đầu dòng, số thục đầu dòng, kí tự chỉ dẫn nào được dùng trong các giá trị thuộc tính cho phép namespace hỗ trợ

- Hãy xem ví dụ sau, để biết cách sử dụng lớp XmlTextWriter

1 privatevoid btnGhiXML_Click(object sender, EventArgs e)

2 {

3 SaveFileDialog sfd = new SaveFileDialog();

4 sfd.Filter = "XML file(*.xml)|*.xml";

5 sfd.RestoreDirectory = true;\

Trang 10

13 xtw.WriteAttributeString("QuocTich", "Viet Nam");

14 xtw.WriteElementString("HoTen", txtHoTen.Text);

15 xtw.WriteElementString("QueQuan", txtQueQuan.Text);

16 xtw.WriteElementString("NgaySinh", txtNgaySinh.Text);

giao diện như sau:

Khi nhấn button ghi ra file XML

thì hộp thoại saveFileDialog sẽ hiện ra

để bạn chọn đường dẫn lưu file Bạn

điền tên file rồi sau đó chọn save thì file

sẽ lưu lại với đuôi mở rộng là xml với

tên mà bạn đã đặt cho nó

Sau đó bạn click chuột phải vào

file xml vừa được tạo ra chọn Edit thì sẽ

thấy nội dung mà chương trình đã ghi ra

- Các thành phần được điều khiển bằng việc theo dõi khi nào bạn bắt đầu và kết thúc thao tác viết các thành phần các thuộc tính Bạn có thể bắt gặp chúng khi chúng ta thêm vào tên của thành phần con cho các thành phần lớn Chú ý việc các lời gọi phương thức WriteStartElement()

và WriteEndElement() được tổ chức như thế nào và các tổ chức các sản phẩm các bộ thành phần trong file xuất

- Các phương thức WriteElementString() và WriteAttributeString(), có một vài phương thức ghi đặc biệc WriteCData() sẽ xuất ra một đoạn CData (<!CDATA[ ]]>), việc xuất ra các text cần một tham số WriteComment() xuất ra một ghi chú theo định dạng XML WriteChars() xuất ghi chi của của một chuỗi các kí tự Điều này cũng tương tự phương thức ReadChars() mà

Trang 11

chúng ta đã biết; chúng đều sử dụng cùng các tham số WriteChars() cần một vùng đệm (một mảng kí tự) Vị trí bắt đầu đẻ ghi (một số integer) số các kí tự sẽ ghi (một số integer)

- Thao tác đọc và ghi XML dùng các lớp xuất phát từ XmlReader và XmlWriter đơn giản

và mềm dẻo đến hơn chúng ta tưởng tượng rất nhiều

II Hướng dẫn làm demo Chương trình kết nối C d ng ile hình XML

Bước 1: Tạo project mới có tên là DemoKetNoiSQL Bước 2: Tao form với các control như hình bên dưới

Combobox Name: cbserver

na

Textbox Name: txtUser,txtPass

Listbox Name:

listBox1 Các button chức năng

Trang 12

Bước 3: Tạo file xml trong thư mục debug của chương trình

Tạo file notpad++ trong đó ghi các dòng sau:

Trang 13

Bước 4: Thêm class DataProvide vào chương như hình bên dưới:

Trong class này, đầu tiên tạo là lớp DataProvide sẽ kết thừa lớp DataTable:

1 classDataProvide : DataTable Trong lớp DataProvide có các thuộc tính như:

1 publicstaticstring m_ConnectString;

2 privatestaticSqlConnection m_Connection;

3 privateSqlCommand m_Command;

4 privateSqlDataAdapter m_DataAdapter;

Tiếp theo, tạo các hàm lấy dữ liệu cho thuộc tính:

1 publicstaticSqlConnection Connection

2 { get { return m_Connection; } }

3 publicSqlCommand SqlCmd

4 {

5 get { return m_Command; }

Trang 14

Tiếp theo trong class này tạo thêm các hàm mở, đóng kết nối,…

1 publicbool OpenConnection()

2 {

3 try

4 {

5 if (m_Connection == null)

7 if (m_Connection.State == ConnectionState.Closed)

Trang 15

Sau cùng trong class này tạo 2 hàm đó là hàm Load() và hàm DocFileCauHinh()

1 publicvoid Load(SqlCommand cmd)

2 {

3 m_Command = cmd;

4 try

5 {

6 this.Clear(); 7 m_Command.Connection = m_Connection; 8 m_DataAdapter = newSqlDataAdapter(); 9 m_DataAdapter.SelectCommand = m_Command; 10 m_DataAdapter.Fill(this); 11 }

12 catch (Exception e) 13 {

14 MessageBox.Show(e.Message); 15 }

16 } 17 publicstaticvoid DocFileCauHinh(string patch) 18 {

19 XmlTextReader reader = newXmlTextReader(patch); 20 reader.MoveToElement(); 21 while (reader.Read()) 22 {

23 if (reader.NodeType == XmlNodeType.Element && reader.Name == "cauhinh") 24 {

25 while (reader.Read()) 26 {

27 if (reader.NodeType == XmlNodeType.Element && reader.Name == "connectStr") 28 {

29 30 DataProvide.m_ConnectString = reader.ReadString(); 31 break; 32 }

33 }

34 }

35 }

Trang 16

Bước 5:Tạo thêm class SQLInformation

Trong class SQLInformation này ta code như sau:

1 publicstaticstring m_SQLServer;

2 publicstaticstring m_Username;

3 publicstaticstring m_Password;

4 publicArrayList GetSQLServersDatabases()

5 {

6 ArrayList data = newArrayList();

7 SqlConnection con = newSqlConnection("server=" + m_SQLServer +

";uid=" + m_Username + ";pwd=" + m_Password);

Trang 17

27 s = patch.Split(c);

28 string ten = "";

29 ten = s[s.Length - 1];

30 string patch1 = "";

31 patch1 = patch.Substring(0, patch.Length - 4);

32 SqlConnection con = newSqlConnection(@"Data Source=" + m_SQLServer + "; Initial Catalog = master; User=" + m_Username +

Bước 6: Ta viết các hàm sự kiện cho form

Để viết các hàm cho sự kiện click đầu tiên ta viết thêm các hàm hỗ trợ khác code như sau:

1 SQLInformation sql = newSQLInformation();

2 DataProvide data = newDataProvide();

3 OpenFileDialog open = newOpenFileDialog();

4 privatebool ktraHople()

Trang 18

31 SQLInformation.m_Username = txtUser.Text;

32 SQLInformation.m_Password = txtPass.Text;

33 SQLInformation.m_SQLServer = cbServer.SelectedItem.ToString();

34 ArrayList data = sql.GetSQLServersDatabases();

35 for (int i = 0; i < data.Count; i++)

1 privatevoid Form1_Load(object sender, EventArgs e)

Trang 19

Kế đến, nhấn đúp vào nút Truy cập để viết code cho sự kiện Click của nút Truy cập

1 privatevoid btn_Load_Click(object sender, EventArgs e)

2 {

3 if (data.OpenConnection())

4 {

5 MessageBox.Show("Truy cập thành công", "Thông báo",

MessageBoxButtons.OK, MessageBoxIcon.Information);

11 MessageBox.Show("Truy cập thất bại", "Thông báo",

MessageBoxButtons.OK, MessageBoxIcon.Error);

11 DialogResult dgResult = open.ShowDialog();

12 if (dgResult == DialogResult.OK)

1 privatevoid btn_Xoa_Click(object sender, EventArgs e)

Trang 20

=>Vậy là chương trình chúng ta đã hoàn thành sau đây là một số câu hỏi nhỏ dành cho các bạn

III Câu hỏi

1 Câu hỏi Thực hành:

Dựa vào word và video hướng dẫn các bạn hãy viết chương trình kết nối CSDL dung file cấu hình XML(bài giải trong thư mục DemoKetNoiSQL của nhóm)

2 Câu hỏi lý thuyết:

A XML là gì? Lợi ích của sử dụng XML trong ngôn ngữ C#?

Trả lời: XML (eXtensible Markup Langue) đóng một vai trò quan trọng trong NET Không chỉ vì NET cho phép bạn sử dụng XML trong các ứng dụng của bạn, mà bản thân nó cũng sử dụng XML cho những file cấu hình

và tài liệu mã nguồn, như SOAP, các dịch vụ web và Ado.net Do đó tìm hiểu về các xử lý XML trong Net với ngôn ngữ C# là một điều nên làm

C Nêu các tên lớp đọc và ghi file XML và giải thích các tên lớp đó Trả lời:

Tên lớp Giải thích

XmlReader

Một lớp đọc trừu tượng nhanh và non-cached dữ liệu XML

XmlReader được thiết kế giống như bộ phân tách SAX

XmlWriter Một lớp viết trừu tượng nhanh và non-cached dữ liệu XML trong

Trang 21

một dòng hoặc định dạng file

XmlTexReader

Mở rộng của XmlReader Cung cấp chuỗi truy cập nhanh dữ liệu XML

XmlTexWriter Mở rộng của XmlWriter Phát nhanh các dòng XML

D Bạn hãy viết một chuỗi kết nối trong file cấu hình để kết nối C# với CSDL Trả lời: <connectStr>Data Source=ADMIN\SQLEXPRESS; Initial Catalog =QLBH; Integrated Security=SSPI;</connectStr>

E Hãy nêu cách sử dụng Schema property?

Trả lời: Schemas property của XmlValidatingReader chứa một XmlSchemaCollection, có thể tìm thấy trong không gian tên System.Xml.Schema Tập hợp này tổ chức load lại loaded XSD và XDR schemas Nó cực nhanh đặc biệc là khi bạn cần kiểm tra sự hợp lệ của nhiều tài liệu khác nhau, vì sơ đồ sẽ không được load mỗi khi kiểm tra Các bước sử dụng thuộc tính này như sau, bạn tạo một đối tượng XmlSchemaCollection Phương thức Add(), nằm trong một

XmlSchemaCollection, có bốn quá tải Bạn có thể truyền nó cho một đối tượng xuất phát từ XmlSchema, một đối tượng xuất phát từ

XmlSchemaCollection, một chuỗi không gian tên với chuỗi URI của file

sơ đồ và một đối tượng xuất phát từ XmlReader chứa trong sơ đồ

F Để sử dụng XmlTexReader cần khai báo thư viện nào?

Trả lời: using System.Xml;

3 Câu hỏi trắc nghiệm

1 Một lớp viết trừu tượng nhanh và non-cached dữ liệu XML trong một dòng hoặc định dạng file

Trang 22

3 Thuộc tính HasAttributes sẽ????

A Trả về giá trị tr e nế ó b t kì th ộ tính nào òn không sẽ trả về false

B Cho bạn biết có bao nhiêu thuộc tính

C Trả về một thuộc tính thông qua tên hoặc chỉ mục

4 Nếu bạn muốn xác nhận một tài liệu XML, bạn sẽ cần phải sử dụng lớp

XmlValidatingReader Nó chứa các khả năng giống như XmlTextReader (Cả hai đều xuất phát từ XmlReader) nhưng XmlValidatingReader có thêm thuộc

Trang 23

MỤC LỤC

I Giới thiệu 23

II Phân công nhóm 24

I Giới thiệu thư viện thực thi 25

II Qui trình tạo thư viện thực thi 26

có thể tìm ra ai đã làm điều đó Vì lý do trên, nhóm chúng em đã chọn đề tài “Thư viện thực thi trong hương trình q ản lý”

Trên cơ sở tự nghiên cứu, phát triển và sự giúp đỡ của thầy Huỳnh Lý Thanh Nhàn đã đóng góp những ý kiến cho việc nghiên cứu của chúng em cũng như trong các thức lập trình Bài báo được viết với mục đích giúp cho các bạn đọc biết về công dụng, hiểu quả của thư viện thực thi cũng như có thể thiết kế được một phần mềm hiệu quả và sáng tạo với những thư viện thực thi của chính mình

Trang 24

II Phân công nhóm

Trang 25

PHẦN II: NỘI DUNG

1 Giới thiệ thư viện thực thi

Thư viện thực thi là một file giúp cho người dùng có thể quản lý được những đối tượng nào đã đăng nhập, đăng xuất ở thời điểm và thực hiện những chức năng nào trên cơ sở dữ liệu File thư viện thực thi có thể sử dụng nhiều loại file khác nhau để lưu trữ nhưng ở đây mình sử dùng file txt để lưu dữ liệu và truy xuất đơn giản hơn

Ví dụ: file thực thi text.txt

Cơ chế hoạt động của file thư viện thực thi như sau: Đầu tiên file sẽ lưu lại tên người dùng đang sử dụng chương trình với quyền tương ứng của họ, thời điểm đối tượng đăng nhập vào hệ thống và thực hiện trên CSDL nào Tiếp theo là đối tượng đã

sử dụng chức năng nào trong CSDL đó Cuối cùng là thời gian đăng xuất

Trang 26

2 Qui trình tạo thư viện thực thi

Bước 1: Tạo class thư viện với 2 phương thức ghi thông tin đăng nhập và ghi thông tin đăng xuất

Bước 2: Tạo phương thức GhiThongTinDangNhap() trong class thư viện Phương thức này có 5 đối số truyền vào và đều là kiểu string, phương thức này giúp lưu lại những thông tin của đối tượng đã đăng nhập vào hệ thống với quyền nào, thời điểm đăng nhập và thực hiện trên CSDL nào của hệ thống Các đối số truyền vào có thể thay đổi tùy vào từng hệ thống khác nhau

string them,string xoa,string luu, string inbang)

6 {

7 //luu file voi ten text va định dang la txt

Trang 27

9 //khai bien cho lop StreamWriter

12 {

20 sw.WriteLine("Thao tác trên bảng: " + bang);

21 }

23 {

25 sw.WriteLine("Thực hiện chức năng: " + them);

26 sw.WriteLine("Thực hiện chức năng: " + xoa);

27 sw.WriteLine("Thực hiện chức năng: " + luu);

28 sw.WriteLine("Thực hiện chức năng: " + inbang);

Trang 28

6 //lay ten nguoi dung tu lop DN_taikhoan va luu lai

10 sw.Close();

12 }

Bước 4: Tạo form thư viện để hiển thị file thực thi

Bước 5: Tạo các control trong form

Trong toolbox, ta kéo thả button và richtextbox vào form thư viện và đổi tên thành btn_mofile và rtb_thuvien, cụ thể như sau:

Trang 30

Bước 8: Tạo 1 buton để khi click vào sẽ hiển thị form thư viện.

Và khi ckick vào sẽ hiển thị form thư viện ta đã tạo trước đó

Trang 32

5 tv.GhiThongTinDangNhap( null , "Thêm(Phòng)" , null , null , null );

6

Tương tự cho các thao tác xóa, sửa, in

PHẦN III: KẾT LUẬN Qua bài viết, nhóm chúng em hy vọng sẽ giúp bạn đọc phần nào hiểu được cách xây dựng được một thư viện thực thi

Cuối cùng, chân thành cảm ơn đến thầy Huỳnh Lý Thanh Nhàn đã tạo điều kiện, giúp đỡ nhóm trong quá trình nghiên cứu và phát triển đề tài Mặc dù chương trình vẫn chưa hoàn thiện như nhóm em mong muốn, nhóm chúng em mong đươc sự góp ý của thầy và các bạn để xây dựng chương trình tốt hơn

Xin chân thành cảm ơn !

Trang 33

Mục Lục

I MÔ TẢ VÀ LỢI ÍCH CỦA ĐỀ TÀI. 0

II DANH SÁCH CÁC CHỨC NĂNG CHÍNH TRONG CHƯƠNG TRÌNH. 1

III KHAI BÁO NGƯỜI DÙNG SỬ DỤNG VÀ PHÂN QUYỀN 4

1 anh sá h người dùng và chứ năng được sử dụng tương ứng 4

2 Thiết kế bảng người dùng (CSDL). 5

3 Thực hiện phân quyền theo mô hình ba lớp. 5

IV HƯỚNG DẪN CÁC BƯỚC PHÂN QUYỀN CHI TIẾT 20

Bước 1:Thiết kế quan hệ NGUOIDUNG 20 Bước 2:Thiết kế FormMain 21 Bước 3:Thiết kế form đăng nhập 25 Bước 4:Xây dựng lớp người dùng DataLayer 28 Bước 5:Xây dựng lớp BusinessLayer 30 Bước 6: Viết code cho DangNhap.cs ( Lớp GUI) 32 Bước 7: Phân quyền cho FornMain.cs ( Lớp GUI) 32

Trang 34

‒ Ở hầu hết các chương trình quản lý, để đảm bảo tính an toàn cho dữ liệu cũng như tránh tình trạng ai cũng sủ dụng được những chức năng mang quyền hạn cao, vấn đề đặt ra cho người lập trình là phải phân cấp tất cả các chức năng trong chương trình, với mỗi người dùng đăng nhập vào hệ thống thì

họ có những quyền hạn để sử dụng chương trình, với mỗi quyền hạn tương ứng với những chức năng cụ thể

‒ Với đề tài trên, nhóm tiến hành phân quyền trên chương trình quản lý nhân sự của một công ty (tự xây dựng) và tiến hành phân quyền người dùng trên chính phần mềm này

‒ Trong chương trình chúng ta sẽ có danh sách những người dùng sau đây :

+ Người dùng Admin (Giám Đốc)

+ Người dùng Nhân Viên Quản Lý

+ Người dùng Nhân Viên

‒ Với người dùng Admin (Giám Đốc) : người dùng này sẽ có toàn quyền, có nghĩa là Giám Đốc sẽ sử dụng được tất cả các chức năng trong chương chình quản lý nhân sự

‒ Với quyền là nhân viên quản lý thì người dùng này có quyền sử dủng các chức năng quản lý như : quản lý nhân viên, quàn lý phòng ban, quản lý lương của nhân viên, v.v

‒ Quyền nhân viên bình thường thì hầu như chỉ được sử dụng các chức năng cơ bản của hệ thống

‒ Công việc phân quyền người dùng được thực hiện trên ngôn ngữ lập trình cấp cao C# Với mỗi loại người dùng sau khi đăng nhập vào hệ thống sẽ lấy quyền người dùng dựa vào tên đăng nhập và cuối cùng là cho các tắt/bật các chức năng tương ứng với quyền người dùng

2 Mụ đí h ủa phân quyền người dùng

Việc phân quyền ngày nay không còn nhằm chỉ là phân công công việc Phân quyền ngày nay còn có nhiều mục đích Những mục đích của việc ủy quyền, tránh thoái thác trách nhiệm của những nhân sự trong công ty :

+ Phân rõ chức năng và nhiệm vụ của mỗi nhân viên

+ Xác lập quyền hạn, trách nhiệm với tửng đầu công việc

II DANH SÁCH CÁC CHỨC NĂNG CHÍNH TRONG CHƯƠNG TRÌNH

1 Hệ thống

1 Đăng nhập Cho phép người dùng sử dụng tài khoảng

của mình đăng nhập để giao tiếp với úng dụng

2 Đăng xuất Thoát khỏi tài khoảng của người dùng đang

sử dụng chương trình

3 Đổi mật khẩu Cho phép người dùng đổi mật khẩu của tài

Trang 35

khoảng hiện tại đang đăng nhập vào hệ thống

4 Quản lý người dùng Cho phép nhà quản người dùng admin thực

hiện thêm xoá sửa thông tin người dùng

5 Sao lưu dữ liệu Sao lưu dữ liệu của cơ sở dữ liệu để tránh

trường hợp hệ thống bị sự cố làm mất dữ liệu của CSDL

6 Phục hồi dữ liệu Khôi phục lại dữ liệu dựa vào mẫu tin đã

dược sao lưu trước đó Phục hồi lại nguồn dữ liệu có trạng thái lúc được sao lưu

7 Thoát Thoát khỏi ứng dụng (tắt chương trình)

2 Danh mục

1 Danh mục Nhân viên Hiển thị form Nhân Viên cho phép nhà quản

trị thực hiện xoá, sửa thông tin nhân viên trong công ty hoặc thêm một nhân viên mới vào danh sách nhân viên của công ty

2 Danh mục Phòng ban Cho phép người dùng là nhà quản trị quản lý

danh mục các phòng ban trong công ty

3 Danh mục Chức vụ Cho phép người dùng là nhà quản trị quản lý

danh sách các chức vụ có trong công ty

4 Danh mục Chuyên

môn

Cho phép người dùng là nhà quản trị quản lý danh mục các chuyên môn của mỗi nhân viên trong công ty

5 Danh mục Trình độ Cho phép người dùng là nhà quản trị quản lý

danh mục trình độ trong công ty

6 Danh mục Hợp đồng Cho phép người dùng là nhà quản trị quản lý

danh mục các hợp đồng trong công ty

7 Danh mục Khen

thưởng Cho phép người dùng là nhà quản trị quản lý danh sách nhân viên được khen thưởng trong

công ty

8 Danh mục Kỹ luật Cho phép người dùng là nhà quản trị quản lý

danh mục các phòng ban trong công ty

9 Danh mục Bảo hiểm Cho phép người dùng là nhà quản trị quản lý

danh mục các bảo hiểm có trong công ty của mỗi nhân viên

10 Danh mục Nghỉ phép Cho phép người dùng là nhà quản trị quản lý

danh sách nhân viên đã nghỉ phép ban trong công ty

11 Danh mục Thân nhân Cho phép người dùng là nhà quản trị quản lý

danh mục các thân nhân của mỗi nhân viên trong công ty

12 Danh mục Dân tộc Cho phép người dùng là nhà quản trị quản lý

danh mục dân tộc trong công ty

Trang 36

13 Danh mục Tôn giáo Cho phép người dùng là nhà quản trị quản lý

danh mục tôn giáo trong công ty

3 Nghiệp vụ

1 Quản lý Nhân Viên Quản lý thông tin nhân viên trong công ty

2 Chuyển phòng ban Giải quyết chuyển phòng ban cho các nhân

viên khi được thay đổi chức vụ

3 Quản lý Lương Cho phép người dùng đổi mật khẩu của tài

khoảng hiện tại đang đăng nhập vào hệ thống

4 Giải quyết ứng lương Cho phép nhà quản người dùng admin thực

hiện thêm xoá sửa thông tin người dùng

4 Tìm kiếm

1 Tìm kiếm Nhân Viên Cho phép tìm kiếm thông tin của tất cả nhân

viên có trong công ty

2 Tìm kiếm Thân nhân Thực hiện tìm kiếm thông tin thân nhân của

mỗi nhân viên thông qua mã của nhân viên

đó

3 Tìm kiếm Bảng Lương Cho phép tìm kiếm bảng lương tháng của

các nhân viên, bảng lương theo quý hoặc theo năm của các nhân viên, hay bảng lương

cá nhân của mỗi nhân viên

5 Báo cáo – Thống kê

1 Lập Bảng kỹ luật Cho phép xem, thêm, xoá, sửa hoặc in bảng

danh sách nhân viên bị kỹ luật

2 Lập Bảng nghỉ phép Thực hiện xem, thêm, xoá, sửa hoặc in bảng

danh sách nhân viên được giải quyết nghỉ phép

3 Lập Bảng danh sách

khen thưởng

Cho phép xem, thêm, xoá, sửa hoặc in bảng danh sách nhân viên được khen thưởng

4 Lập Bảng lương Thực hiện xem, thêm, xoá, sửa bảng lương

tháng của các nhân viên, bảng lương theo quý hoặc theo năm của các nhân viên, hay bảng lương cá nhân của mỗi nhân viên

Trang 37

trình

III KHAI BÁO NGƯỜI DÙNG SỬ DỤNG VÀ PHÂN QUYỀN

1 anh sá h người dùng và chứ năng được sử dụng tương ứng

STT Tên người dùng Danh sách chứ năng được sử dụng

1 Giám đốc ( Admin) Sử dụng được tất cả các chức năng của chương

trình

2 Nhân viên quản lý Đăng nhập

Đăng xuấtĐổi mật khẩuThoát

Danh mục Nhân viênDanh mục Phòng banDanh mục Chức vụDanh mục Chuyên mônDanh mục Trình độDanh mục Hợp đồngDanh mục Khen thưởngDanh mục Danh mục Kỹ luật Danh mục Bảo hiểm

Danh mục Nghỉ phépDanh mục Thân nhânDanh mục Dân tộcDanh mục Tôn giáoQuản lý Nhân ViênChuyển phòng banQuản lý LươngGiải quyết ứng lươngTìm kiếm Nhân ViênTìm kiếm Thân nhân Tìm kiếm Bảng LươngLập Bảng kỹ luậtLập Bảng nghỉ phép Lập Bảng danh sách khen thưởngLập Bảng lương

Thông tin chương trìnhHướng dẫn sử dụng

Đăng xuấtĐổi mật khẩuThoát

Danh mục Nhân viênDanh mục Phòng banDanh mục Chức vụDanh mục Chuyên mônDanh mục Trình độ

Trang 38

Danh mục Hợp đồngDanh mục Khen thưởngDanh mục Danh mục Kỹ luật Danh mục Bảo hiểm

Danh mục Nghỉ phépDanh mục Thân nhânDanh mục Dân tộcDanh mục Tôn giáo Thông tin chương trìnhHướng dẫn sử dụng

2 Thiết kế bảng người dùng (CSDL)

không quy định về chiều dài để tính bảo mật cao hơn

các số nguyên, được đánh

số từ 1 tới n (n là tổng số quyền có trong công ty)

người dùng đăng nhập hệ thống hiện tại có các quyền sau : Admin, nhân viên quản lý, nhân viên

 Bảng người dùng trong mô hình quan hệ :

Hình 1

3 Thực hiện phân quyền theo mô hình ba lớp

a) Phân quyền chi tiết trên form chính (frmMain)

Trang 39

‒ Với quyền Admin (Giám Đốc)

+ Danh sách các control của Ribon:

Trang 40

Hình 2.1 : Admin – Hệ thống

Hình 2.2 : Admin – Danh Mục

Ngày đăng: 13/07/2014, 21:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w