Tải bản đầy đủ (.pdf) (84 trang)

Xây dựng chương trình quản lý bán hàng và phát triển dịch vụ cho viễn thông thái nguyên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.47 MB, 84 trang )

MỤC LỤC
MỤC LỤC .........................................................................................................1
ĐẶT VẤN ĐỀ ....................................................................................................3
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT .................................................................4
1.1 TÌM HIỂU VỀ MÔI TRƯỜNG DOT NET ......................................................4
1.2 NỀN TẢNG LẬP TRÌNH..................................................................................4

1.2.1 Các kiểu dữ liệu đặc thù ...................................................................4
1.2.2. Hằng .................................................................................................5
1.2.3. Làm việc với toán tử trong Visual Basic.Net ...................................5
1.2.4. Làm việc với các phương thức trong thư viện .net ..........................6
1.2.5. Trật tự ưu tiên của các toán tử ........................................................6
1.3. SỬ DỤNG CÁC PHÁT BIỂU CẤU TRÚC RA QUYẾT ĐỊNH .....................7

1.3.1. Sử dụng các biểu thức điều kiện......................................................7
1.3.2.Phát biểu điều khiển..........................................................................7
1.4. XỬ LÝ VÀ PHỐI HỢP DỮ LIỆU .................................................................12

1.4.1. Sử dụng các Module và thủ tục ....................................................12
1.4.2. Xử lý mảng và tập hợp (Collection): ..............................................13
1.5. TRUY CẬP DỮ LIỆU VỚI ADO.NET..........................................................14

1.5.1. Các đối tượng của ADO.NET ........................................................14
1.5.2. Quản lý các Provider trong ADO.NET ..........................................15
1.6. TÌM HIỂU HỆ QUẢN TRỊ CSDL SQL SERVER 2000. .............................19

1.6.1. SQL là gì? .......................................................................................19
1.6.2. Các cơ sở dữ liệu mặc định của SQL.............................................20
1.6.3. Cách thức tổ chức cơ sở dữ liệu của SQL Server 2000.................21
1.6.4. Các đối tượng CSDL của SQL Server 2000...................................22
CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ............................24


2.1 GIỚI THIỆU VỀ TT DVKH VIỄN THÔNG THÁI NGUYÊN.....................24
2.2 KHẢO SÁT HIỆN TRẠNG BÀI TOÁN ........................................................25

2.2.1 Khảo sát bài toán.............................................................................25
2.2.2 Cách thức hoạt động của hệ thống .................................................27
2.2.3. Một số biểu mẫu hệ thống cũ đang sử dụng..................................28
2.2.4 Phân tích những nhược điểm của hệ thống cũ ..............................32
2.2.5 Định hướng phát triển và xây dựng hệ thống mới .........................33
2.3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG...........................................................38

2.3.1 Mục tiêu quản lý và yếu tố thành công...........................................38
2.3.2 Thiết kế hệ thống về chức năng ......................................................40
2.3.3 Thiết kế hệ thống về dữ liệu ............................................................42
2.3.4 Xây dựng Cơ sở dữ liệu...................................................................50

1


CHƯƠNG 3: XÂY DỰNG PHÁT TRIỂN CHƯƠNG TRÌNH....................57
3.1. TỔNG QUAN VỀ QUÁ TRÌNH PHÁT TRIỂN CHƯƠNG TRÌNH ...........57
3.2. MỘT SỐ KẾT QUẢ SAU KHI XÂY DỰNG CHƯƠNG TRÌNH ................58

3.2.1. Màn hình chờ (Flash Screen) ........................................................58
3.2.2. Form Đăng nhập hệ thống.............................................................58
3.2.3. Form chương trình chính ..............................................................59
3.2.4. Form Quản lý người dùng .............................................................60
3.2.5. Form Quản lý danh mục loại hàng................................................60
3.2.6. Form Quản lý danh mục nhân viên tổ bán hàng ..........................61
3.2.7. Form Quản lý danh mục nhân viên tổ quản lý kho ......................61
3.2.8. Form Quản lý danh mục mệnh giá SIM trả trước ........................62

3.2.9. Form Quản lý danh mục hình thức thanh toán ............................62
3.2.10. Form nhập hàng...........................................................................63
3.2.11. Form Bán hàng ............................................................................64
3.2.12. Form cập nhật giá bán .................................................................65
3.2.13. Form Cảnh báo hết hàng .............................................................65
3.2.14. Form phát triển thuê bao di động ................................................66
3.2.15. Form phát triển thuê bao GPhone ...............................................67
3.2.17. Form phát triển thuê bao Internet ...............................................69
3.2.18. Form cập nhật thông tin thuê bao ...............................................70
3.2.19. Form quản lý việc cắt chuyển thuê bao .......................................71
3.2.20. Form chọn thời gian báo cáo .......................................................72
3.2.21. Form tìm kiếm hàng bán theo số SERI .......................................72
3.2.22. Form tìm kiếm hàng bán theo số máy..........................................73
3.2.23. Form tìm kiếm khách hàng theo tên............................................73
3.2.24. Form báo cáo nhập hàng .............................................................74
3.2.25. Form báo cáo bán hàng ...............................................................75
3.2.26. Form báo cáo hàng tồn ................................................................76
3.2.27. Form báo cáo tổng hợp Nhập-Xuất-Tồn .....................................77
3.2.28. Form báo cáo phát triển thuê bao di động...................................78
3.2.29. Form báo cáo phát triển thuê bao Gphone ..................................79
3.2.30. Form báo cáo phát triển thuê bao điện thoại cố định .................80
3.2.31. Form báo cáo phát triển thuê bao Internet..................................81
KẾT LUẬN......................................................................................................82
TÀI LIỆU THAM KHẢO ..............................................................................84

2


ĐẶT VẤN ĐỀ
Thời đại CNTT phát triển đã tạo nên vô vàn điểm thuận lợi, cũng như cơ

hội tốt nhất cho con người trong học tập, nghiên cứu khoa học, giải trí, … và
đặc biệt là trong lĩnh vực kinh doanh.
Người ta thấy rằng, việc sử dụng con người trong hầu hết các công việc
như quản lý nhân sự, quản lý tiền lương, quản lý kho… thường hay dẫn đến sai
sót và tốn nhiều thời gian, nhất là khi quy mô hoạt động của một doanh nghiệp
càng lớn. Hơn nữa việc dùng quá nhiều người dẫn đến bộ máy hành chính cồng
kềnh và tốn kém, điều đó dẫn đến hiệu quả doanh nghiệp ngày càng giảm sút.
Chính vì thế việc áp dụng công nghệ thông tin trong các doanh nghiệp ngày nay
là điều tất yếu.
Xuất phát từ nhu cầu công việc thực tế của em ở Viễn thông Thái
Nguyên cùng với mong muốn tổng hợp các kiến thức đã được học trong 5 năm
học vừa qua, trong thời gian làm đồ án tốt nghiệp, em đã chọn đề tài: “Xây
dựng chương trình quản lý bán hàng và phát triển dịch vụ cho Viễn Thông
Thái Nguyên” do thầy giáo, TS Phạm Việt Bình hướng dẫn. Riêng về bản thân
mình, em nhận thấy đây là một đề tài hay và mang ý nghĩa thực tế rất cao và nó
thực sự cần thiết để giúp cho sinh viên chúng em nắm được quy trình phát triển
một phần mềm mang ý nghĩa thực tế cho công việc của em tại cơ quan nói riêng
và cho sự phát triển CNTT của tỉnh nói chung. Mặc dù đã hết sức cố gắng trong
suốt quá trình thực hiện đề tài đồ án tốt nghiệp, nhưng do thời gian làm đồ án
có hạn và kiến thức của bản thân còn hạn chế, bản báo cáo đồ án và chương
trình của em chắc chắn sẽ còn một số thiếu sót. Vì vậy, em rất mong nhận được
ý kiến từ phía các thầy cô và các bạn để em đồ án của em được hoàn thiện hơn
nữa. Em xin trân trọng cảm ơn !
Sinh viên thực hiện
Lê Thanh Chung

3


CHƯƠNG 1. CƠ SỞ LÝ THUYẾT

1.1 TÌM HIỂU VỀ MÔI TRƯỜNG DOT NET
Microsoft Visual Basic.Net là một nâng cấp và mở rộng quan trọng của
hệ thống phát triển Visual Basic thông dụng , một sản phẩm và ngôn ngữ lập
trình ưa chuộng, được sử dụng bởi hơn 3 triệu lập trình viên khác trên thế giới.
Visual Basic thật sự có rất nhiều nét mới, Visual Basic.net nhanh chóng, hiệu
quả.
Ưu điểm quan trọng nhất của Visual Basic.net là nó được thiết kế để bạn
làm việc hiệu quả hơn cho công việc phát triển các ứng dụng hàng ngày – đặc
biệt nếu bạn sử dụng nó để xử lý thông tin trong cơ sở dữ liệu hoặc tạo ra các
giải pháp cho Internet. Nhưng có một lợi ích khác là khi bạn đã quen với môi
trường phát triển trong Visual Basic, bạn có thể sử dụng những công cụ này để
viết các chương trình bằng Microsoft Visual C++.net, Microsoft Visual C#.net
và những công cụ , trình biên dịch của nhà phát triển thứ ba.
1.2 NỀN TẢNG LẬP TRÌNH
1.2.1 Các kiểu dữ liệu đặc thù
Kiểu dữ liệu Kích thước Phạm vi

Ví dụ

Short

16 bit

-32.678 đến 32.767

Dim Birt As Short
Birds=12500

Integer


32 bit

-2.147.483.648 đến
2.147.483.647

Dim X As Integer
X = 3750000

Long

64 bit

-9.221.472.036.854.775.807
đến
9.221.472.036.854.775.807

Dim Y As Long
Y = 3988890343

Single

32 bit (dấu
chấm
động)

-3.402823E38 đến
3.402823E38

Dim Z As Single
Z = 899.99


Double

64 bit (dấu
chấm
động)

-1.7976313486231E308 đến
1.7976313486231E308

Dim Pi As Double
Pi = 3.14159265

Decimal

128 bit

Trong khoảng +/- 79.228 x

Dim Debt As

4


1024

Decimal
Debt = 7234734.5

Byte


8 bit

0-255

Dim Key As Byte
Key = 13

Char

16 bit

0-65.535

Dim Ch As Char
Ch = “ W”

String

Nhiều ký
tự

Chứa từ 0 đến 2 tỷ ký tự

Dim Dog As String
Dog = “Poiter”

Boolean

16 bit


Chia hai giá trị True hoặc
Fale

Dim Flag As Boolean
Flag = True

Date

64 bit

Từ 1/1/1 đến 31/12/9999

Dim Birthday As
Date
Birthday = #1/2/02

Object

32 bit

Bất kỳ kiểu đối tượng nào

Dim MyApp As
Object

VB cũng cho phép tạo ra kiểu dữ liệu của riêng mình.
1.2.2. Hằng
Tạo và khai báo hằng số:
Gõ từ khóa Const tiếp theo là tên hằng, kiểu hằng (tương tự khai báo

biến) và toán tử gán (=) đặt giá trị cho hằng số.
Ví dụ: Const Pi As Double = 3.1415
1.2.3. Làm việc với toán tử trong Visual Basic.Net
Công thức là một phát biểu kết hợp bởi con số, biến, toán tử và các từ
khóa để hình thành hay tạo nên một giá trị mới.
Một tính năng khá thú vị trong VB.net là bạn có thể sử dụng cách viết tắt
cho toán tử trong phép gán hoặc tính liên quan đến thay đổi giá trị của biến. Ví
dụ: Nếu bạn kết hợp dấu “+” và dấu”=” bạn có thể cộng hai số mà không cần
phải lặp lại tên biến hai lẩn trong cùng công thức. Do đó, thay vì: X=X+6 bạn
có thể viết X+=6
Ta có bảng các toán tử sau và ví dụ về cách viết tắt của chúng

5


Toán tử

Mô tả

Dạng đầy đủ

Dạng tắt

+

Cộng

X=X+8

X+=8


-

Trừ

X=X-8

X-=8

*

Nhân

X=X*8

X*=8

/

Chia

X=X/8

X/=8

\

Chia lấy phần nguyên

X=X\8


X\=8

Mode

Chia lấy phần dư

^

Mũ lũy thừa

X=X^8

X^=8

&

Nối chuỗi

X=X&”abc”

X^=”abc”

1.2.4. Làm việc với các phương thức trong thư viện .net
Ta sẽ làm quen với lớp System.Math của .NET Framework
Nếu muốn sử dụng bất kỳ phương thức nào bạn cần đặt phát biểu sau
ngay đầu mã chương trình
Import System.Math
Mục đích


Phương thức
Abs(n)

Trả về giá trị tuyệt đối của n

Atan(n)

Trả về Artang của n (n tính bàng Radian)

Cos(n)

Trả về Cos của góc b (n tính bàng Radian)

Exp(n)

Trả về e mũ n

Sign(n)

Trả về –1 nếu n<0 và 1 nếu n>0 , 0 nếu n=0

Sin(n)

Trả về Sin của n (n tính bàng Radian)

Sqrt(n)

Trả về căn bậc hai của n

Tan(n)


Trả về Tan của góc n (n tính bàng Radian)

1.2.5. Trật tự ưu tiên của các toán tử
Toán tử

Trật tự ưu tiên

()

Giá trị hay biểu thức con trong cặp dấu ngoặc đơn được
ưu tiên trước

^

Ưu tiên thứ hai

-

Ưu tiên thứ ba

6


*/

Tiếp theo là toán tử nhân và chia

\


Tiếp là phép chia nguyên
Phép chia lấy dư

Mod

Sau cùng là cộng và trừ

+-

1.3. SỬ DỤNG CÁC PHÁT BIỂU CẤU TRÚC RA QUYẾT ĐỊNH
1.3.1. Sử dụng các biểu thức điều kiện
Một biểu thức điều kiện là một phần trong phát biểu hoàn chỉnh của
chương trình trả lời cho câu hỏi đúng/sai (True/False) về thuộc tính, biến hoặc
một mẫu thông tin nào đó trong mã chương trình.
Ta có thể sử dụng một trong các toán tử so sánh sau:
Toán tử so sánh

Ý nghĩa

=

Bằng

<>

Khác (không bằng)

>

Lớn hơn


<

Nhỏ hơn

<=

Nhỏ hơn hoặc bằng

>=

Lớn hơn hoặc bằng

1.3.2.Phát biểu điều khiển
1.3.2.1. Phát biểu điều khiển If…then Else … End If
Dạng đơn giản:
Đây là phát biểu thường gặp, có cấu trúc như sau:
If condittion [Then]
[statement ]
[ElseIf elseifcondittion [then]
[elseIfstatements]
[Else]
[Elese Statements]
End If

7


 Condition: là biểu thức bắt buộc, giá trị trả về True hay False, giá
trị có kiểu Boolean

 Statement: phát biểu trong khối If …Then khi có condition có giá
trị bằng True, statement cũng có thể có nhiều phát biểu điều khiển
khác bên trong
 Elseifcondition : Tương tự condttion
 ElseifStatement: Phát biểu trong khối ElseIf .. Then khi condition
có giá trị là True, statement cũng có thể có nhiều phát biểu điều
kiện khác bên trong
 ElseStatement: phát biểu trong khối Else khi có condition và
ElseCondition có giá trị là False , elseStatement cũng có thể có
nhiều phát biểu điều khiển khác bên trong
 End If: phát biểu kết thúc khối If Then Else EndIf
1.3.2.2. Phát biểu Select…..Case:
Select .. Case là phát biểu rẽ nhánh và trong bất kỳ trường hợp nào bạn
cũng có thể chuyển từ phát biểu If… Then ….Else…. EndIf sang phát biểu
Select… Case
Phát biểu Select…Case thực hiện một trong nhóm phát biểu, phụ thuộc
giá trị biểu thức, với cú pháp :
Select [Case] testexpression
[Casen expressionlist]
[statement]
[Case Else]
[ElseStatement]
End Select

8


 Testexpression: là biểu thức bắt buộc, giá trị thuộc một trong các
dạng dữ liệu sau:: Boolean, byte, Char, Date, Double, Decimal,
Long , Integer, short, Single, String

 Expessionlist: Phát biểu yêu cầu nằm trong Case, trong Case có
thể là mệnh đề hay biểu thức, chúng cách nhau bởi dấu “,”. Ngoài
ra trong Case còn sử dụng To để diễn giải khoảng giá trị. Is là biểu
thức so sánh.
 Statement: một hay nhiều phát biểu trong Case
 End Select: Kết thúc phát biểu Select Case
1.3.2.3. Phát biểu Do .. Loop
Phát biểu Do ..Loop là phát biểu vòng lặp một trong lúc điều kiện là
True hay cho đến khi điều kiện là True
Cú pháp:
Do {While | until} condition
[statements]
[Exit Do]
[statement]
Loop
Phát biểu trên có dạng 2 như sau:
Do
[statements]
[Exit Do]
[statement]
Loop {While | Until} condition
 While: khai báo khi từ khóa Until được khai báo, vòng lặp thực
hiện cho đến khi condition bằng Fale

9


 Until: khai báo khi từ khóa While được khai báo, vòng lặp thực
hiện cho đến khi condition bằng True
 Condition: là biểu thức luân lý có giá trị là True hay False

 Statement: một hay nhiều phát biểu lặp trong While hay Until khi
condition là True
 Exit Do : Thoát khỏi vòng lặp
1.3.2.4. Phát biểu While…End While
Phát biểu While…End While, thực hiện nhiều phát biểu khi điều kiện
condition có giá trị là True như cú pháp:
While Condition
[statements]
End While
 Condition: là phát biểu luận lý bắt buộc, có giá trị True hay False ,
nếu condition =Nothing thì condition tương đương với False
 Statement : một hay nhiều phát biểu thực hiện trong khối While khi
condition bằng True
 End While: kết thúc vòng lặp
1.3.2.5. Phát biểu With …End With
Phát biểu được sử dụng trong khi tham chiếu đến đối tượng đơn, hay một
Structure, With .. End With thực hiện nhiều phát biểu như cú pháp:
With Object
[statements]
End With
 Object: là biểu thức bắt buộc, có giá trị với bất kỳ biểu thức dữ
liệu, bao gồm cả các kiểu cơ bản nhất
 Statement: một hay nhiều phát biểu thực hiện trong Object
 End With: kết thúc phát biểu

10


1.3.2.6. Phát biểu For Each… Next
Vòng For Each .. Next lặp lại một nhóm phát biểu cho mỗi phần tử

trong mảng hay tập hợp với cú pháp:
For Each element In Group
[statements]
[Exit for]

[statements]
Next[element]
 Element: Biến bắt buộc, sử dụng biến này để nhận giá trị của phần
tử trong (In) mảng hay tổ hợp, kiểu dữ liệu của Element phải cùng
kiểu với phương thức trong mảng hay tổ hợp (Group)
 Group: biến đối tượng bắt buộc và được tham chiếu như một mảng
hay tổ hợp
 Statement: một hay nhiều phát biểu trong vòng For Each… Next
 Exit For: thoát khỏi For khi thỏa mãn điều kiện nào đó
1.3.2.7. Phát biểu For .. . Next:
Phát biểu này lặp lại các phát biểu trong phát biểu For với số lần giới hạn
như cú pháp:
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next [cuonter]
 Counter: Biến bắt buộc, kiểu dữ liệu của Cuonter thông thường là
Integer, nhưng cũng có thể sử dụng bất kỳ kiểu dữ liệu dạng số
với các hệ thống phép toán <,>,+

11


 Start: biểu thức bắt buộc, chính là giá trị xuất phát của biến counter

trong trường hợp này start có cùng kiểu với counter và nằm trong
phạm vi cho phép
 End: biểu thức bắt buộc, chính là giá trị xuất phát của biến counter
trong trường hợp này End có cùng kiểu với counter và nằm trong
phạm vi cho phép
 Step: trong trường hợp không cung cấp giá trị step với từ khóa step
thì vòng For với counter có bước nhảy là 1
 Statement: Các biểu thức trong vòng For
 Exit For : thoát khỏi vòng For khi thỏa mãn điều kiện nào đó
1.4. XỬ LÝ VÀ PHỐI HỢP DỮ LIỆU
1.4.1. Sử dụng các Module và thủ tục
Tạo mới module: Nhấn nút Add New Item trên thanh công cụ chuẩn và
chọn Module trong hộp thoại. Hoặc chọn Project/ Add New Item từ menu
Lưu Module với tên mới: Chọn module trong cửa sổ Solution Explorer
chọn SaveModule1.vb as Command trên menu File rồi đặt tên cho Module
Loại bỏ module khỏi chương trình: Chọn module trên Solution Explorer
và chọn Exclude Form Project trên menu Project
Thêm Module hiện có vào dự án: Chọn Project/ Add Existing Item
Tạo biến Public toàn cục: Khai báo biến bằng cách sử dụng từ khóa
Public thay cho Dim, khai báo biến được định nghĩa ngay trong module giữa từ
khóa module và End Module
Tạo một hàm toàn cục: Đặt phát biểu khai báo hàm bên trong Module.
Mặc định hàm khai báo trong module được xem là toàn cục và có thể triệu gọi
bất kỳ đâu trong dự án. Nội dung hàm xây dựng trong từ khóa Funtion và End
Funtion.

12


Gọi hàm: Tên hàm và


các đối số truyền cho hàm (nếu có ) đặt trong

dấu ngoặc đơn. Có thể gán kết quả trả về của hàm cho biến
Tạo một thủ tục Sub toàn cục: Đặt phát biểu khai báo thủ tục Sub trong
module. Mặc định thủ tục khai báo trong module được xem như toàn cục và có
thể triệu gọi bất hỳ đâu trong dự án. Nội dung thủ tục được xây dựng giữa từ
khóa Sub và End Sub
Gọi thủ tục Sub: Gõ tên và các đối số truyền cho thủ tục (nếu có ) đặt
trong dấu ngoặc đơn
Chuyển đối số cho tham trị: Sử dụng tự khóa Byval để khai báo đối số .
Chuyển đối số theo tham chiếu: Sử dụng từ khóa ByRef để khai báo đối
số
1.4.2. Xử lý mảng và tập hợp (Collection):
Tạo mảng: Dim Tên mảng(số phần tử) As Kiểu
Tạo mảng toàn cục: Public Tên mảng(số phần tử) As Kiểu
Định dạng chuỗi tách thành dòng và phân cách cột : Sử dụng các hằng
vbCrLf và vbTab (nối vào chuỗi bằng toán tử &)
Tạo mảng động: Định nghĩa không xác định số phần tử. Ví dụ:
Dim Temperatures () As Single
Tổng quá trình thực thi nhập dữ liệu để xác định kích thước mảng và tái định
nghĩa:
ReDim Temperatures (10)
Xử lý các phần tử trong mảng: Dùng vòng lặp For…Next để duyệt
mảng. Dùng hàm Abound để xác định chỉ số lớn nhất
Định nghĩa lại kích thước mảng mà vẫn giữ lại dữ liệu cũ: Dùng từ khóa
Preserve sau định nghĩa ReDim
Xử lý các đối tượng trong tập hợp: Sử dụng vòng lặp For

Each


…..Next

13


1.5. TRUY CẬP DỮ LIỆU VỚI ADO.NET
Thành phần ADO.NET, được thiết kế nhằm tăng tốc độ truy cập và thao
tác dữ liệu trong môi trường đa lớp (n-tier) .Hai thành phần chính của
ADO.NET là đối tượng Dataset và .NetProvider
.NET Provider là một tập các đối tượng trong thành phần .NET bao gồm
Connection (Kết nối cơ sở dữ liệu), Command(Lệnh thi hành), DataReade(Bộ
đọc dữ liệu), DataAdapter (Kết nối và điều phối dữ liệu)
1 .5.1. Các đối tượng của ADO.NET
1.5.1.1. Đối tượng DataSet:
DataSet là một đối tượng của ADO.NET, cung cấp cách thông thường
nhất để trình bày và thao tác dữ liệu. DataSet không phải là một CSDL mà
chúng là một đối tượng nắm bắt dữ liệu từ bất kỳ nguồn dữ liệu khác
Dataset không chỉ dùng để truy vấn dữ liệu mà còn di chuyển tại bất kỳ
thời điểm nào, sau đó gửi dữ liệu thông qua XML
Đối tượng DataSet trong ADO.Net được định nghĩa trong không gian tên
System.Data, không gian tên này chứa đựng các lớp và các phương thức với
mục đích thao tác dữ liệu trong đối tượng DataSet, trong không gian tên
System.Data gồm các đối tượng:
Diễn giải

Đối tượng
DataSet

Bộ nhớ chứa đựng dữ liệu


DataTable

Dùng để truy vấn đối tượng từ đối tượng Tablescollection
cùng với đối tượng DataTable và DataSet

DataRow

Dùng để truy vấn đối tượng từ đối tượng Rowcollection cùng
với đối tượng DataRow và DataTable

1.5.1.2. Đối tượng DataTable
DataTable là một đối tượng trong DataSet. DataTable:có các thuộc tính
sau:
 Column: Truy cập dữ liệu từ cột như tập hợp dữ liệu, trả về
DataColumnCollection

14


 Row: Truy vấn mẩu tin trong đối tượng DataTable trả về đối tượng
DataRowCollection của đối tượng DataRow
 ParenRelation: Trả về DataRalationCollection của tất cả quan hệ giữa các
bảng
 Constraints: Trả về DataSet của DataTable trực thuộc
 Primarykey: Gán hay lấy khóa chính của bảng dữ liệu trong mảng cột của
bảng
1.5.1.3 . Đối tượng Dataview
Sử dụng đối tượng Dataview có thể tạo ra nhiều view từ các bảng dữ liệu
cho trước

Các thông tin của đối tượng Dataview
 Table: Gán hay lấy nguồn dữ liệu từ Table cho View
 Sort: Nhận hay thiết lập sắp xếp dữ liệu tăng hay giảm
 RowFilter: Gán hay thiết lập biểu thức điền kiện lọc dữ liệu
 RowStateFilter: Gán hay nhận trạng thái của bộ lọc bao gồm các
giá trị enumeration

như: CurrenRow, Deleted, None, New,

Unchanged,..
1.5.2. Quản lý các Provider trong ADO.NET
Để lấy dữ liệu từ nguồn dữ liệu cần phải quản lý vận dụng Provider.
Provider như một cầu nối giữa ứng dụng với CSDL, chúng dùng để kết nối
nguồn dữ liệu, thực hiện câu lệnh và nhận dữ liệu trả về, những dữ liệu này có
thể được xử lý trực tiếp hay lưu trữ trên đối tượng DataSet
ADO.NET gồm hai Provider:
 SQL Server.NET data provider: Sử dụng cho SQL Server 7.0 và các
phiên bản sau
 OLE DB.NETdata provider: Sử dụng cho dữ liệu kết xuất thông qua
OLE DB

15


Cả hai đối tượng này thuộc không gian tên System.Data
Hai provider này cung cấp các chức năng tương tự nhau như:
SQL Server.NET Data Provider

OLE DB.NET Data Provider


Sql Command
OleDbCommand
SqlConnection
OleDbConnection
Sql DataAdapter
OleDbDataAdapter
Sql DataReader
OleDbDataReader
Sql Parameter
OleDbParameter
Các đối tượng Provider này chứa đối tượng hiện thực cho các nguyên tố .NET
bao gồm :Connection, Commmand, DataReader. DataAdapter
 Connection: Thiết lập kết nối CSDL với nguồn dữ liệu
 Command: Thực hiện lệnh trên nguồn dữ liệu, đặt vào các tham số và thu
nhận các chuyển tác từ kết nối Connection
 DataReader: Đọc luồng dữ liệu từ nguồn dữ liệu theo thuộc tính Forwad
Only (một chiều )
 DataAdapter: Điều phối một DataSet và giải quyết vấn đề cập nhật dữ
liệu với nguồn dữ liệu
Ta có thể xem hình dưới đây:

DataStoree

DataSetCommand

DataSet

DataSet Command là cầu nối DataSet và nguồn dữ liệu
Ta thấy, đối tượng DataSet Command của Provider lấy dữ liệu từ
nguồn dữ liệu và truyền đến một tệp dữ liệu, tương tự như vậy, khi tập dữ liệu

này có sửa đổi, người dùng muốn cập nhật lại nguồn dữ liệu gốc với dữ liệu vừa
thay đổi thì đối tượng DataSet Command sẽ thực hiện quá trình này
Trước đây, xử lý dữ liệu cơ bản trên cấu trúc hai tầng và Connection,
trong trường hợp cấu trúc dữ liệu nhiều tầng, người lập trình phải sử dụng giải
pháp ngắt kết nối, tạo sự uyển chuyển cho ứng dụng

16


DataSetCommand cung cấp một công cụ quan trọng cho giải pháp này
trong ADO.NET, như đã nói DataSetCommand nạp đối tượng DataSet, đưa ra
cầu nối giữa đối tượng này với nguồn dữ liệu, với mục đích truy vấn và cập
nhật dữ liệu.
.NET Framework

bao gồm hai đối tượng SQL Server.NET Data

Provider và OLE DB.NET Data Provider. Tuy nhiên, cú pháp của hai đối
tượng này hầu hết giống nhau. Song cũng có vài điểm trông có vẻ khác nhau
như trong bảng sau:
Provider

Ghi chú

SQL Server.NET
Data Provider

-Ứng dụng tầng giữa, sử dụng như Microsoft SQL Server
7.0 hay các phiên bản SQL Server 2000
-Ứng dụng tầng đơn sử dụng cho Micrsoft SQL Server hay

các phiên bản của SQL Server 2000 và Microsoft Data
Engine
- Cho các OLE DB Provider for SQL Server với SQL
Server.NET Data Provider

OLE DB.NET
Data Provider

-Ứng dụng tầng giữa, sử dụng như Microsoft SQL Server
6.5 hay các phiên bản SQL Server trước đây và Oracle
-Ứng dụng tầng đơn sử dụng cho Micrsoft Access
- Cho các OLE DB.NET Provider for Micrsoft Access

1.5.2.1. Mô hình Provider thông dụng
Rõ ràng ADO.NET trình bày dữ liệu dựa trên hai đối tượng .NET Data
Provider, ta có thể lấy ví dụ, sử dụng hầu hết các đối tượng đó, như đối tượng
Command để tạo lớp IdbCommand, IdataReader kế thừa từ lớp DataReader
như sau:
Dim cmdCommand As IdbCommand = myConn.CreateCommand ()
cmdCommand.CommandTex = ”Select * from Customers”
Dim drReader As IdataReader = cmdCommand .ExecuteReader ()
Do While drReader.Reader ()
Console.Write (“(0)”& vbTab & & “ {1} “), &_
DrReade.getString (0), DrReader. GetString (1)
Loop

17


DataReader là một thành phần của .NET Data Provider, chúng là một

giải pháp tốt cho bạn lấy dữ liệu từ nguồn dữ liệu lên trên lưới
Tóm lại, ta cần 3 lựa chọn quan trọng khi làm việc trên ADO.NET
 Connection với nguồn dữ liệu: Đây là kết nối nguồn dữ liệu mức
vật lý
 Command là thiết lập lệnh để lấy dữ liệu, thao tác dữ liệu
 Đối tượng DataSet và DataReader nắm bắt dữ liệu mà chúng lấy
được từ nguồn dữ liệu
1.5.2.2. Kết nối vào nguồn dữ liệu
Để di chuyển dữ liệu giữa nguồn dữ liệu và ứng dụng phải kết nối vào
nguồn dữ liệu đó. Trong ADO.NET bạn có thể tạo và quản lý kết nối bằng hai
đối tượng: SQl Connection cho SQl Server.NET Data Provider và
OledbConnection cho Oledb.NET
Cần chú ý: SQL Connection chỉ sử dụng cho Sql Server 7.0 hay các
phiên bản sau này, trong khi đó OleDbConnection sử dụng cho hầu hết các
phiên bản cơ sở dữ liệu
Điểm chính ở đây, cần phải chú ý đến thuộc tính ConnectionString,
thuộc tính này bao gồm chuỗi kết nối như cú pháp sau:
Dim splConn As SqlConnection = New SqlConnection
(“server = (local) \ NetSDK; uid = hv; pwd = hv;
Database = yourdatabase”)
Để kết nối nguồn dữ liệu. ngoài đối tượng và thuộc tính, còn phải quan
tâm tới hai phương thức liên quan
Open: Mở kết nối
Close: Đóng kết nối

sqlConn.Open ()
sqlConn.Close ()

1.5.2.3 Thao tác dữ liệu từ nguồn dữ liệu
Để thực thi một thao tác trên nguồn dữ liệu hay truy vấn dữ liệu, ta khai

báo đối tượng Command
Đối tượng Command có thể tạo Constructor Command hay gọi phương
thức Create Command của đối tượng kết nối như:

18


Dim splConn As SqlConnection = New SqlConnection
(“server = (local) \ NetSDK; uid = hv; pwd = hv;
Database = yourdatabase”)
Dim cmdCommand As Sqlcommand =
New sqlcommand ( =
Select customerNo
From tblcustomers
Where active = 1 “, sqlConn )
sqlConn.Open ()
….
sqlConn.Close ()
1.5.2.4. Tạo đối tượng DataReader
Sau khi kết nối và truy vấn dữ liệu, bạn cần có nơi để lưu trữ dữ liệu. Đối
tượng DataReader cho phép bạn làm điều này
Sau khi tạo kết nối của đối tượng Command, ta cần tạo DataReader
bằng cách gọi phương thức ExecuteReader, phương thức này lấy mẩu tin từ
nguồn dữ liệu sau khi thiết lập đối tượng Command

và lưu dữ liệu vào

DataReader như phát biểu
‘ Khai báo đối tượng kết nối và chuỗi kết nối
Dim splConn As SqlConnection = New SqlConnection

(“server = (local) \ NetSDK; uid = hv; pwd = hv;
Database = yourdatabase”)
‘Khai báo đối tượng SQL thực thi
Dim cmdCommand As Sqlcommand =
New sqlcommand ( =
Select customerNo
From tblcustomers
Where active = 1 “, sqlConn )
‘Gọi phương thức mở kết nối
sqlConn.Open ()
‘Gọi phương thức thực thi phát biểu SQL trên đối tượng sqlDataReader
Dim drSqlDataReader As sqlDataReader =
cmdSqlcommand. ExecuteReader ().
‘Đóng kết nối
sqlConn.Close
1.6. TÌM HIỂU HỆ QUẢN TRỊ CSDL SQL SERVER 2000.
1.6.1. SQL là gì?
SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational
Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi

19


dữ liệu giữa Client computer và SQL Server computer. Một RDBMS bao gồm
databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ
phận khác nhau trong RDBMS.
SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ
liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể
phục vụ cùng lúc cho hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý"
với các server khác như Microsoft Internet Information Server (IIS), ECommerce Server, Proxy Server....

1.6.2. Các cơ sở dữ liệu mặc định của SQL
CSDL Master:
Đây là CSDL chủ chốt để chạy SQL Server. CSDL này có một con trỏ chỉ
vào tập tin dữ liệu chính của từng CSDL khác đã cài đặt, cũng như thông tin về
Server diện rộng chủ chốt. Thông tin Server diện rộng bao gồm các thông báo
lỗi, thông tin nhập vào, thủ tục lưu trữ hệ thống và kết nối hoặc liên kết các
Server.
CSDL Model:
Đây là CSDL mẫu. Mỗi khi bạn tạo một CSDL mới thực tế là sao chép
CSDL Model. Bất kỳ đối tượng nào đó có trong CSDL Model sẽ được sao chép
tới CSDL mới khi nó tạo được.
CSDL Tempdb:
Đây là nơi yêu cầu khoảng trống tạm thời để thực hiện các việc như sắp
xếp, cân đối. CSDL Tempdb được khởi tạo lại SQL Server khởi động lại.
CSDL MSDB:
Đây là CSDL hỗ trợ cho dịch vụ SQL Server Agent, bao gồm thông tin sắp
xếp công việc, các loại cảnh báo, các sự kiện và sao lưu. Theo mặc định kích
thước CSDL BSDB khoảng 12MB.
CSDL Pubs:

20


Đây là CSDL hỗ trợ cho việc học tập bao gồm các thông tin về nhà xuất
bản như các tác giả các sách, giá bán. Hầu hết các ví dụ trong SQLServer Book
Online đều dựa vào CSDL này, CSDL Pubs chiếm không tới 2MB.
CSDL Northwind
Đây cũng là CSDL cho việc học tập xen kẽ với CSDL Pubs, CSDL này
chiếm khoảng 3,5MB.
1.6.3. Cách thức tổ chức cơ sở dữ liệu của SQL Server 2000.

Hình dưới đây cho thấy cách lưu trữ dữ liệu trong bộ nhớ của SQL Server:

Dữ liệu được lưu trữ trong các trang 8KB liên tiếp trong không gian đĩa
gọi là Extent. Vậy mỗi 1MB có thể lưu trữ 128 trang. Bảng, chỉ mục và các đối
tượng khác cũng được lưu trữ trong Extent. Do đó một CSDL có 16 Extent
trong mỗi MB, 8 đối tượng nhỏ có thể cùng một Extent. Nếu bảng lớn hơn 8
trang thì nó chiếm toàn bộ Extent.

21


Tập tin Transaction Log giữ toàn bộ thông tin để khôi phục CSDL trong
trường hợp hệ thống có sự cố. Kích cỡ của Transaction Log ngầm định là 25%
kích cỡ của tập tin CSDL.
Cách làm việc của Transaction Log:
Quá trình thay đổi dữ liệu được biểu diễn như sau:
Sự biến đổi dữ liệu được gửi đến ứng dụng.
Khi biến đổi được thực thi, các trang dữ liệu có ảnh hưởng được nạp từ
tập tin dữ liệu vào trong bộ nhớ (gọi là data cache).
Một câu lệnh biến đổi được ghi vào Log file trước khi sự biến đổi này
được thực hiện trong CSDL. Kiểu log này gọi là Write-ahead-log.
Khi các trang dữ liệu cư trú trong data cache và các trang log được ghi
trên đĩa và log file, quá trình checkspoint viết tất cả những chuyển dịch đến
CSDL trên đĩa.
Nếu hệ thống bị treo, quá trình khôi phục tự động sẽ chạy khi SQl khởi
động lại. Quá trình này dùng Transaction log để thực hiện.
1.6.4. Các đối tượng CSDL của SQL Server 2000
Diagrams (lược đồ quan hệ): Đây là công cụ giúp cho việc thực hiện các
kết nối giữa các bảng CSDL.
Table (bảng): Đây là đối tượng lưu trữ dữ liệu thực. Trong bảng bao gồm

nhiều trường. Mỗi trường ứng với mỗi loại kiểu dữ liệu.
View (khung nhìn): Có thể coi đây là một bảng ảo được định nghĩa bởi
các câu truy vấn.
Stored Procedure (thủ tục dựng sẵn): Đây được coi như giao diện chương
trình giữa ứng dụng và CSDL SQL Server.
User (người dùng): Chứa các người dùng của CSDL.
Roles (vai trò): Chứa các vai trò CSDL.

22


Rules (quy tắc): Các quy tắc củng cố thêm tính toàn vẹn miền bằng cách
cung cấp nhiều hơn việc kiểm tra các giá trị hợp lệ, chẳng hạn:
- So khớp với một mẫu (LIKE).
- So khớp với một danh sách các giá trị (IN).
- Thuộc về một khoảng các giá trị nào đó (BETWEEN).
Defaults: Chứa giá trị mặc định của trường trong bảng dữ liệu khi ta thêm
một bản ghi mới nhưng không nhập giá trị cho bản ghi đó.
User Defined Data Types: Chứa các kiểu dữ liệu do người dùng định nghĩa.
User Defined Function: Chứa các hàm do người dùng định nghĩa.
Full-text Catalog: Các dịch vụ văn bản

23


CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 GIỚI THIỆU VỀ TT DVKH VIỄN THÔNG THÁI NGUYÊN
Trung tâm dịch vụ khách hàng tỉnh Thái Nguyên được thành lập với
nhiệm vụ cung cấp các dịch vụ, bán hàng và chăm sóc khách hàng, giải đáp các
thông tin xã hội, tra cứu danh bạ điện thoại, bảo dưỡng, xử lý các thiết bị viễn

thông, xử lý cước toàn tỉnh.
Hoạt động chủ yếu của trung tâm là cung cấp các dịch vụ bán hàng với
điểm giao dịch chính là Trung tâm dịch vụ Khách Hàng.

MÔ HÌNH TỔ CHỨC CỦA TRUNG TÂM DỊCH VỤ KHÁCH HÀNG
VIỄN THÔNG THÁI NGUYÊN
GIÁM ĐỐC

Tổ
tổng
hợp

P. kế
toán
thống
kê tài
chính

Tổ
dịch
vụ
trung
tâm

Tổ
dịch
vụ
chăm
sóc
KH


Tổ
sửa
chữa
quản

mạng

Tổ
xử lý
cước

Tổ
giải
đáp
108

Hình 2.1: Sơ đồ bộ máy tổ chức của TTDV KH – VT Thái Nguyên
Tổ tổng hợp sẽ chịu trách nhiệm nhập hàng và xuất hàng cho điểm bán
hàng chính là tổ dịch vụ trung tâm và tổ dịch vụ chăm sóc Khách Hàng, đồng
thời cũng là nơi cập nhật danh mục mặt hàng, số lượng, đơn giá các loại mặt
hàng. Hai tổ dịch vụ Trung tâm và tổ dịch vụ chăm sóc Khách Hàng là hai nơi
trực tiếp bán hàng và cập nhật phiếu bán hàng. Bộ phận kế toán sẽ thống kê
doanh thu, tổng hợp nợ, thống kê hàng bán trong ngày, hàng bán trong tháng,
tổng hợp tồn, thống kê hàng bán chạy…

24


2.2 KHẢO SÁT HIỆN TRẠNG BÀI TOÁN

2.2.1 Khảo sát bài toán
Hiện nay, tại Trung tâm dịch vụ khách hàng thuộc Viễn thông Thái
Nguyên, bài toán quản lý bán hàng và phát triển dịch vụ vẫn đang được thực
hiện kiểu bán thủ công. Điều này có nghĩa là đã có những chương trình theo
ngành dọc của Tập đoàn Bưu chính viễn thông Việt Nam và các phần mềm
dùng riêng trong Trung tâm nhưng các hệ thống này được phát triển ở mức độ
tổng thể, rất khó phù hợp với hiện trạng thực tế của mỗi một bài toán nhỏ trong
các đơn vị cụ thể. Những khó khăn gặp phải đối với bài toán quản lý bán hàng
và phát triển dịch vụ tại Trung tâm như sau:
- Hệ thống quản lý thuê bao di động và thuê bao Internet được phát triển trên
nền ứng dụng Web triển khai trên phạm vi toàn quốc, vì vậy rất khó khăn
cho tổ bán hàng thực hiện việc kết xuất các báo cáo định kỳ theo yêu cầu cụ
thể cho lãnh đạo khi có yêu cầu.
- Phần mềm quản lý kinh doanh đã được áp dụng trước đây tại Trung tâm
không phù hợp với hiện trạng bài toán quản lý kinh doanh tại Trung tâm,
đặc biệt là trong vấn đề đối chiếu, thống kê lượng hàng nhập vào và xuất ra
vì bài toán quản lý bán hàng và phát triển thuê bao mang tính đặc thù riêng
rất cao. Cụ thể là
o Việc nhập hàng bán tại tổ bán hàng từ bộ phận kế toán và bộ phận
kho chung của Trung tâm được thực hiện thường xuyên với số
lượng SIM lớn nhưng bộ phận bán hàng lại không được lưu lại
phiếu xuất hàng từ bộ phận kế toán
o Nhóm hàng thẻ SIM thường đa dạng và biến đổi thường xuyên về
đầu số và mệnh giá bán theo thời gian
o Mỗi một thẻ SIM đều có một số SERI duy nhất, vì vậy việc quản lý
từng thẻ SIM khi nhập về tại tổ bán hàng gây mất rất nhiều thời gian
cho nhân viên tổ bán hàng.
o Khi thực hiện bán hàng, phải lưu lại thông tin cụ thể về khách hàng
và mặt hàng bán ra để thực hiện việc thống kê báo cáo.


25


×