Visual Basic giúp ta bỏ qua những hệ lụy đó, chuyên gia lập trình có thể tự vẽ cho mình giao diện cần thiết trong ứng dụng application 1 cách dễ dàng và như vậy, tập trung nổ lực giải đá
Trang 1TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG
TIN
BÁO CÁO ĐỒ ÁN VISUAL BASIC
Sinh viên thực hiện: ………
Mã sinh viên: ……… Lớp: ………
Hà Nội
Trang 2Mục Lục
Phần 1: Tổng quan về VB và lí do chọn đề tài
1.1 Sơ lược về lịch sử của VB.NET
1.2 Sơ lược về Visual Basic.NET
1.3 Sơ lược về NET
1.3.1 NET Servers
1.3.2 NET Framework
Phần 2: Thiết kế phần mềm
2.1 Thiết Kế CSDL
2.2 Thiết Kế Giao Diện
2.3 Thiết Kế Chức Năng
1
Trang 3Phần I Tổng quan về VB.net và lý do chon đề tài quản lý cửa hàng máy tính
1.1 Sơ lược về lịch sử của VB.NET
Ngôn ngữ BASIC (Beginner's All Purpose Symbolic Instruction Code) đã có từ năm 1964 BASIC rất dễ học và dễ dùng Trong vòng 15 năm đầu, có rất nhiều chuyên gia Tin Học và công ty tạo các chương trình thông dịch (Interpreters) và biên dịch (Compilers) cho ngôn ngữ làm BASIC trở nên rất phổ thông
Năm 1975, Microsft tung ra thị trường sản phẩm đầu tay Microsoft BASIC và tiếp đó Quick BASIC (còn gọi là QBASIC) thành công rực rỡ
Quick BASIC phát triển trong nền Windows nhưng vẫn khó khăn khi tạo giao diện kiểu Windows Sau đó nhiều năm, Microsoft bắt đầu tung ra 1 sản phẩm mới cho phép ta kết hợp ngôn ngữ dễ học BASIC và môi trường phát triển lập trình với giao diện bằng hình ảnh (Graphic User Interface - GUI) trong Windows Đó là Visual Basic Version 1.0
Sự chào đời của Visual Basic Version 1.0 vào năm 1991 thật sự thay đổi bộ mặt lập trình trong Công Nghệ Tin Học
Trước đó, ta không có 1 giao diện bằng hình ảnh (GUI) với một IDE (Integrated
Development Environment) giúp các chuyên gia lập trình tập trung công sức và thì gìờ vào các khó khăn liên hệ đến doanh nghiệp của mình Mỗi người phải tự thiết kế giao diện qua thư viện có sẵn Windows API (Application Programming Interface) trong nền Windows Điều này tạo ra những trở ngại không cần thiết làm phức tạp việc lập trình
Visual Basic giúp ta bỏ qua những hệ lụy đó, chuyên gia lập trình có thể tự vẽ cho mình giao diện cần thiết trong ứng dụng (application) 1 cách dễ dàng và như vậy, tập trung nổ lực giải đáp các vần đề cần giải quyết trong doanh nghiệp hay kỹ thuật
2
Trang 4Ngoài ra, còn nhiều công ty phụ phát triển thêm các khuôn mẫu (modules), công cụ (tools, controls) hay ứng dụng (application) phụ giúp dưới hình thức VBX cộng thêm vào giao diện chính càng lúc càng thêm phong phú
Khi Visual Basic phiên bản 3.0 được giới thiệu, thế giới lập trình lại thay đổi lần nữa Kỳ này, ta có thể thiết kế các ứng dụng (application) liên hệ đến Cơ Sở Dữ Liệu (Database) trực tiếp tác động (interact) đến người dùng qua DAO (Data Access Object) Ứng dụng này thưòng gọi là ứng dụng tiền diện (front-end application) hay trực diện
Phiên bản 4.0 và 5.0 mở rộng khả năng VB nhắm đến Hệ Điều Hành Windows 95
Phiên bản 6.0 cung ứng 1 phương pháp mới nối với Cơ Sở Dữ Liệu (Database) qua sự kết hợp của ADO (Active Data Object) ADO còn giúp các chuyên gia phát triển mạng nối với
Cơ Sở Dữ Liệu (Database) khi dùng Active Server Pages (ASP)
Lưu ý ở đây, tất cả các khái niệm và công dụng của Modules, Tools, Controls, DAO, ADO hay ASP sẽ được từ từ trình bày trong các bài học kế
Tuy nhiên, VB phiên bản 6.0 (VB6) không cung ứng tất cả các đặc trưng của kiểu mẫu ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Language - OOL) như các ngôn ngữ C++, Java
Thay vì cải thiện hay vá víu thêm thắc vào VB phiên bản 6.0, Microsoft đã xoá bỏ tất cả làm lại từ đầu các ngôn ngữ lập trình mới theo kiểu OOL rất hùng mạnh cho khuôn nền NET Framework Đó là các ngôn ngữ lập trình Visual Basic.NET và C# (gọi là C Sharp) Sau đó, nhiều ngôn ngữ lập trình khác cũng thay đổi theo tỷ như smalltalk.NET, COBOL.NET, làm Công Nghệ Tin Học trở nên phong phú hơn, đa dạng hơn
Tất cả những thay đổi này nhằm đáp ứng kịp thời sự đòi hỏi và nhu cầu phát triển cấp bách trong kỹ nghệ hiện nay
1.2 Sơ lược về Visual Basic.NET
Visual Basic.NET (VB.NET) là ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented
3
Trang 5Programming Language) do Microsoft thiết kế lại từ con số không Visual Basic.NET (VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà là một ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft 's NET Framework Do đó, nó cũng không phải là VB phiên bản 7 Thật sự, đây là ngôn ngữ lập trình mới và rất lợi hại, không những lập nền tảng vững chắc theo kiểu mẫu đối tượng như các ngôn ngữ lập trình hùng mạnh khác đã vang danh C++, Java mà còn dễ học, dễ phát triển và còn tạo mọi cơ hội hoàn hảo để giúp ta giải đáp những vấn đề khúc mắc khi lập trình Hơn nữa, dù không khó khăn gì khi cần tham khảo, học hỏi hay đào sâu những gì xảy ra bên trong hậu trường OS, Visual Basic.NET (VB.NET) giúp ta đối phó với các phức tạp khi lập trình trên nền Windows và do đó, ta chỉ tập trung công sức vào các vấn đề liên quan đến dự án, công việc hay doanh nghiệp mà thôi
Trong khóa học này, các bạn sẽ bắt đầu làm quen với kiểu lập trình dùng Visual Basic.NET (VB.NET) và dĩ nhiên, các khái niệm và thành phần cơ bản của NET Framework
Nếu ta để ý tên của Visual Basic.NET (VB.NET), ta thấy ngay ngôn ngữ lập trình này chuyên trị tạo ứng dụng (application) dùng trong mạng, liên mạng hay trong Internet Tuy nhiên, khi học bất cứ một ngôn ngữ lập trình mới nào, ta cũng cần 'tập đi trước khi tập chạy' Do đó, ta sẽ tập trung vào việc lập trình các ứng dụng (applications) trên nền Windows
và đó cũng là mục tiêu chính yếu của khóa học cơ bản Visual Basic.NET
1.3 Sơ lược về NET
.NET là tầng trung gian giữa các ứng dụng (applications) và hệ điều hành (OS) Tầng NET cung cấp mọi dịch vụ cơ bản giúp ta tạo các công dụng mà ứng dụng (application) đòi hỏi, giống như hệ điều hành cung cấp các dịch vụ cơ bản cho ứng dụng (application), tỷ như: đọc hay viết các tập tin (files) vào dĩa cứng (hard drive), Tầng này bao gồm 1 bộ các ứng dụng (application) và hệ điều hành gọi là NET Servers Như vậy, NET gần như là một bộ sưu tập (collection) các nhu liệu và khái niệm kết hợp trộn lẫn nhau làm việc nhằm tạo giải đáp các vấn đề liên quan đến thương nghiệp của ta Trong đó:
* Tập hợp các đối tượng (objects) được gọi là NET Framework và
* Tập hợp các dịch vụ yểm trợ mọi ngôn ngữ lập trình NET gọi là Common Laguage Runtime (CLR)
Hãy quan sát thành phần cơ bản của NET:
4
Trang 6User Applications
.NET Framework
.NET Servers
.NET Devices
Hardware Components
1.3.1 NET Servers
Mục tiêu chính của NET là giúp ta giảm thiểu tối đa công việc thiết kế hệ thống tin học phân tán (distributed system) Đa số công việc lập trình phức tạp đòi hỏi đều được thực hiện
ở hậu phương (back end) trong các máy cung cấp dịch vụ (servers) Microsoft đã đáp ứng với bộ sưu tập '.NET Enterprise Servers', bộ này chuyên trị và yểm trợ mọi đặc tính (features) hậu phương cần có cho một hệ thống tin học phân tán (distributed system)
Bộ sưu tập '.NET Enterprise Servers' bao gồm:
* Server Operationg Systems: MS Windows Server, Advanced Server và Data Center Server
* Clustering và Load Balancing Systems: MS Application Center, MS Cluster Server
* Database System: MS SQL Server (SQL đọc là sư cô, à không, 'si cồ')
* E-Mail System: MS Exchange Server
* Data-transformation engine trên cơ sở XML: MS Biz Talk Server
* Accessing Legacy Systems: Host Integration Server
Tất cả các máy server này cung cấp mọi dịch vụ cần thiết cho các ứng dụng (application)
về NET và là nền tảng xây dựng hệ thống Tin Học cho mọi dự án lập trình
1.3.2 NET Framework
Đối với Visual Basic.NET (VB.NET), tất cả mọi thứ đều thay đổi tận gốc rễ Một trong những thành phần quan trọng của NET là NET Framework Đây là nền tảng cho mọi công
cụ phát triển các ứng dụng (application) NET
.NET Framework bao gồm:
* Môi trường vận hành nền (Base Runtime Environment)
5
Trang 7* Bộ sưu tập nền các loại đối tượng (a set of foundation classes)
Môi trường vận hành nền (Base Runtime Environment) hoạt động giống như hệ điều hành cung cấp các dịch vụ trung gian giữa ứng dụng (application) và các thành phần phức tạp của
hệ thống Bộ sưu tập nền các loại đối tượng (a set of foundation classes) bao gồm 1 số lớn các công dụng đã soạn và kiểm tra trước, tỷ như: giao lưu với hệ thống tập tin (file system access) hay ngay cả các quy ước về mạng (Internet protocols), nhằm giảm thiểu gánh nặng lập trình cho các chuyên gia Tin Học Do đó, việc tìm hiểu NET Framework giúp ta lập trình
dễ dàng hơn vì hầu như mọi công dụng đều đã được yểm trợ
Ta xem NET Framework như là một tầng công dụng trừu tượng cung cấp dịch vụ trên hệ điều hành (nhìn dưới khía cạnh cung cấp dịch vụ):
User Applications
.NET Framework
Hệ điều hành (OS)
Device Drivers
Harware Components (Cương liệu)
Để mọi ngôn ngữ lập trình sử dụng được các dịch vụ cung cấp bởi NET Framework, Microsoft tạo
ra 1 tiêu chuẩn chung cho ngôn ngữ lập trình gọi là Common Language Specifications (CLS) Tiêu chuẩn này giúp các chương trình biên dịch (compilers) làm việc hữu hiệu Microsoft sáng chế ra Visual Basic.NET (VB.NET), Visual C++.NET và C# (đọc là C Sharp) cho nền NET Framework
và cũng không quên phổ biến rộng rãi CLS trong Công Nghệ Tin Học giúp các ngôn ngữ lập trình khác làm việc trong nền NET, tỷ như: COBOL.NET,
Smalltalk.NET,
Lý do chọn đề tài quản lý cửa hàng máy tính
Vì đề tài này rất thân thuộc với đời sống hiện tại
6
Trang 8Phần 2: Thiết Kế Phần Mềm
2.1 Thiết kế CSDL
- Cơ sở dữ liệu được thiết kế bằng MS SQL Server Management để thuân tiện cho việc quản lý, thêm sửa dữ liệu với vb.net
- CSDL gồm 6 bảng bao gồm:
1 Bảng DangNhap để đăng nhập vào phần mềm :
Mã Đăng Nhập : MaDN
Mật Khẩu: MatKhau
2 Bảng QL_NhanVien để quản lý nhân viên cửa hàng: Mã Nhân Viên: MaNV Tên Nhân Viên: TenNV
Giới Tính: GioiTinh
Địa Chỉ: DiaChi
Số điện thoại: SDT
Lương: Luong
3 Bảng QL_KhachHang
Mã Khách Hàng: MaKH
Mã Hàng: MaHang
Tên Khách Hàng: TenKhachHang
SĐT: SDT
Giới Tính: GioiTinh
Địa Chỉ: DiaChi
4 Bảng QL_HoaDonChiTiet Mã Hóa Đơn: MaHD Mã Khách Hàng: MaKH Mã Hàng: MaHang
Tên Hàng: TenHang
Số Lượng : SoLuong
Đơn Giá: DonGia
7
Trang 9Tổng Tiền: TongTien
5 Bảng QL_HangHoa Mã Hàng: MaHang Tên Hàng: TenHang
Số Lượng Nhập: SoLuongNhap
Đơn Giá: DonGia
Xuất Sứ: XuatSu
6 Relationship
8
Trang 102.2 Thiết Kế Giao Diện và Giao Diện Demo
Gồm 6 Form
1 Form Đăng Nhập
2 Form Menu
9
Trang 113 Form Quản Lý Khách Hang
10
Trang 124 Form Quản Lý Hàng Hóa
1 1
Trang 135 Form Quản Lý Bán Hàng
12
Trang 146 Form Quản Lý Nhân Viên
13
Trang 162.3 Thiết Kế Chức Năng
Mỗi Form đều được thiết kế các chức năng Thêm,Sửa,Xóa,Tìm kiếm,
Thoát form(các form thực hiện như nhau)
1 Khai Báo
Private _DBAccess As New DataBaseAccess
Private _isLoading As Boolean = False
Private _isEdit As Boolean = False
Public Sub New(isEdit As Boolean)
InitializeComponent()
_isEdit = isEdit
End Sub
2 Chức Năng Thêm
- Private Function ThemKH() As Boolean
GioiTinh, DiaChi)"
- sqlQuery += String.Format("VALUES
('{0}','{1}','{2}','{3}','{4}')", _
- txtmakh.Text, txttenkh.Text, txtsdt.Text, txtgioitinh.Text,
txtdiachi.Text)
- Return _DBAccess.ExecuteNoneQuery(sqlQuery)
-End Function
- Code Tác vụ click
- Private Sub cmdthem_Click(sender As Object, e As EventArgs) Handles cmdthem.Click
- Dim frm As New frmQLKhachHang(False)
If isEmpty() Then
- MessageBox.Show("nhap gia tri trc khi ghi vao database",
"Error", MessageBoxButtons.OK)
- 'kiem tra truong du lieu khi thuc hien them/sua'
- If _isEdit Then ' neu la edit thi goi ham update '
- If UpdateKH() Then
- MessageBox.Show("sửa dữ liệu thành công", "Thong Tin", MessageBoxButtons.OK)
- Me.DialogResult = Windows.Forms.DialogResult.OK
- MessageBox.Show("Sua Bi loi ", "Error",
MessageBoxButtons.OK)
- Me.DialogResult = Windows.Forms.DialogResult.No
- If ThemKH() Then ' neu la them thi goi ham insert '
MessageBoxButtons.OK)
- Me.DialogResult = Windows.Forms.DialogResult.Yes
- MessageBox.Show("Lỗi Thêm Dữ liệu", "Error",
MessageBoxButtons.OK)
- Me.DialogResult = Windows.Forms.DialogResult.No
15
Trang 17- If frm.DialogResult = Windows.Forms.DialogResult.OK Then
- Me.LoadDataOnGridView()
- End Sub
3 Chức năng tìm kiếm theo combobox ( chỉ cần nhập thứ cần tìm ko cần click)
Private Sub TimKiem1(value As String, ByVal value2 As String)
Dim sqlQuery As String = _
String.Format("SELECT * FROM dbo.QL_NhanVIen")
If Me.cmbtimkiem.SelectedIndex = 0 Then 'Tim theo Student ID
sqlQuery += String.Format(" WHERE MaNV LIKE '{0}%'", value2) ElseIf Me.cmbtimkiem.SelectedIndex = 1 Then 'Tim theo Student Name
sqlQuery += String.Format(" WHERE TenNV LIKE '{0}%'", value2) ElseIf Me.cmbtimkiem.SelectedIndex = 2 Then
sqlQuery += String.Format(" WHERE GioiTinh LIKE '{0}%'", value2) End If
Dim dTable As DataTable =
_DBAccess.GetDataTable(sqlQuery)
Me.datavnv.DataSource = dTable 'Load Lai dl vao
bang With Me.datavnv
.Columns(0).HeaderText = "Mã Nhân Viên"
.Columns(1).HeaderText = "Tên Nhân Viên"
.Columns(2).HeaderText = "Giới Tính"
.Columns(3).HeaderText = "Địa Chỉ"
.Columns(4).HeaderText = "Số Điện Thoại"
.Columns(5).HeaderText = "Lương"
End With
End Sub
4 Chức năng sửa - Code Hàm
Private Function UpdateKH() As Boolean
Dim sqlQuery As String = String.Format("UPDATE QL_KhachHang Set TenKhachHang='{0}', SDT='{1}', GioiTinh='{2}',DiaChi='{3}' Where
MaKH='{4}'",
Me.txttenkh.Text, Me.txtsdt.Text, Me.txtgioitinh.Text, Me.txtdiachi.Text, Me.txtmakh.Text)
Return _DBAccess.ExecuteNoneQuery(sqlQuery)
End Function
- code đầy đủ tác vụ click
Private Sub cmdsua_Click(sender As Object, e As EventArgs) Handles
cmdsua.Click Dim frm As New frmQLKhachHang(True)
frm.txtmakh.ReadOnly = True 'Chi cho doc, truong nay khong cho phep thay doi khi sua du lieu
With Me.datavqlkh
frm.txtmakh.Text = Rows(.CurrentCell.RowIndex).Cells("MaKH").Value
frm.txttenkh.Text = Rows(.CurrentCell.RowIndex).Cells("TenKhachHang").Value frm.txtsdt.Text = Rows(.CurrentCell.RowIndex).Cells("SDT").Value
frm.txtgioitinh.Text = Rows(.CurrentCell.RowIndex).Cells("GioiTinh").Value frm.txtdiachi.Text = Rows(.CurrentCell.RowIndex).Cells("DiaChi").Value
End With
frm.ShowDialog()
If frm.DialogResult = Windows.Forms.DialogResult.OK Then 'Sua du lieu thanh cong thi load lai du lieu vao gridview
Me.LoadDataOnGridView()
End If
End Sub
16
Trang 185 Chức năng xóa code đầy đủ tác vụ click
Private Sub cmdxoa_Click(sender As Object, e As EventArgs) Handles
cmdxoa.Click Dim MaKH As String =
Me.datavqlkh.Rows(Me.datavqlkh.CurrentCell.RowIndex).Cells("MaKH").Value 'Khai bao cau lenh Query de xoa
Dim sqlQuery As String = String.Format("DELETE QL_NhanVIen WHERE MaKH = '{0}'",
MaKH)
'Thuc hien xoa
If _DBAccess.ExecuteNoneQuery(sqlQuery) Then 'Xoa thanh cong thi thong bao MessageBox.Show("Da xoa du lieu thanh cong!")
'Load lai du lieu tren Gridview
Me.LoadDataOnGridView()
Else
MessageBox.Show("Loi xoa du lieu!")
End If
End Sub
6 Thoát Form
Ngoài ra Còn có chức năng đăng nhập vào CSDL ở form đăng nhập
1- Khai Báo
Imports System.Configuration
Imports System.Data.SqlClient
Private _ConnectionString As String =
ConfigurationSettings.AppSettings("MyConnectionString")
Private connect As SqlConnection
Private datab As SqlDataAdapter
'Dinh nghia ham lay du lieu vao table'
Private Function getDataTable(sqlQuery As String) As
DataTable Dim dTable As New DataTable
'khoi tao bien connect va database'
connect = New SqlConnection(_ConnectionString)
datab = New SqlDataAdapter(sqlQuery, connect)
Try
'Mo connection'
connect.Open()
'do du lieu vao datat'
datab.Fill(dTable)
Catch ex As Exception
MessageBox.Show(ex.Message, "Loi Dang Nhap")
Finally
connect.Close() 'Dong Connection'
End Try
Return dTable
End Function
2- Code hàm kiểm tra user và pass có trong csdl hay ko
Private Function CheckLogin(user As String, pass As String)
Dim sqlQuery As String = String.Format("select * from dbo.DangNhap where [MaDN]= '{0}' and [MatKhau] = '{1}'", user, pass)
Dim dTable1 As DataTable = getDataTable(sqlQuery)
17