【摘 要】本文針對管理系統(tǒng)項目的特點,設(shè)計并實現(xiàn)了以Visual Basic 6.0為前臺SQL Server 2008為后臺的基于Client/Server結(jié)構(gòu)的學(xué)生管理系統(tǒng)。本系統(tǒng)的設(shè)計初衷來源于設(shè)計校內(nèi)的《Visual Basic 6.0 + SQL Server 2008項目教學(xué)》課程的實例,在實際授課過程中通過實現(xiàn)實例中模塊的功能,使學(xué)生更好的了解VB和SQL Server的特性及結(jié)合方法,為學(xué)生完成畢業(yè)設(shè)計和畢業(yè)論文打下基礎(chǔ),為工作積累素材和經(jīng)驗。
【關(guān)鍵詞】項目實訓(xùn);Visual Basic;SQL Server;管理系統(tǒng)
1、問題的提出
隨著計算機在各行各業(yè)的普及和應(yīng)用,人們的日常辦公學(xué)習(xí)都與管理系統(tǒng)密不可分。作為計算機軟件專業(yè)的學(xué)生,能夠掌握如何使用前臺應(yīng)用程序與后臺數(shù)據(jù)庫相結(jié)合的方法設(shè)計和實現(xiàn)管理系統(tǒng)軟件已是必備的技能。本文以VB為前臺設(shè)計界面軟件,以SQL Server為后臺數(shù)據(jù)庫設(shè)計軟件,在介紹VB與SQL Server各自特性的同時,更著重講述VB與SQL Server如何連接使用的實用方法。使用VB制作前臺的管理系統(tǒng)比較易于掌握,可視化性能較強,并能生成.exe(可執(zhí)行文件)或打包成安裝軟件,便于攜帶和演示,較適合高職院校學(xué)生學(xué)習(xí)和掌握,成就感較強。
2、管理系統(tǒng)的工作模式
實訓(xùn)所涉及的管理系統(tǒng)采用C/S(客戶端/服務(wù)器端)體系結(jié)構(gòu),Client和Server常常分別處在相距很遠(yuǎn)的兩臺計算機上,Client程序的任務(wù)是將用戶的要求提交給Server程序,再將Server程序返回的結(jié)果以特定的形式顯示給用戶;Server程序的任務(wù)是接收客戶程序提出的服務(wù)請求,進(jìn)行相應(yīng)的處理,再將結(jié)果返回給客戶程序。
C/S 結(jié)構(gòu)的基本原則是將計算機應(yīng)用任務(wù)分解成多個子任務(wù),由多臺計算機分工完成,即采用“功能分布”原則??蛻舳送瓿蓴?shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;服務(wù)器端完成DBMS的核心功能。這種客戶請求服務(wù)、服務(wù)器提供服務(wù)的處理方式是一種新型的計算機應(yīng)用模式。學(xué)生管理系統(tǒng)的基本結(jié)構(gòu)如圖1所示:
3、系統(tǒng)功能和數(shù)據(jù)庫設(shè)計
系統(tǒng)從管理和使用角度來講,由兩大部份組成:學(xué)生使用界面部分和管理員管理界面部分。系統(tǒng)前臺界面由VB獨立創(chuàng)建完成,后臺數(shù)據(jù)庫有SQL Server獨立創(chuàng)建完成。應(yīng)用時用戶可使用開發(fā)者提供的.exe文件執(zhí)行程序,或使用開發(fā)者提供的打包安裝文件安裝完畢后執(zhí)行程序。
實現(xiàn)系統(tǒng)的主要功能模塊如下:
(1)登錄模塊:通過輸入用戶名和密碼以及選擇登錄權(quán)限進(jìn)入功能界面。
(2)學(xué)生管理:在顯示學(xué)生信息的基礎(chǔ)上,系統(tǒng)為用戶提供了查詢、修改、添加、刪除學(xué)生信息的相關(guān)操作。該模塊功能的適用對象為管理員。
(3)課程管理:在顯示課程信息的基礎(chǔ)上,系統(tǒng)為用戶提供了查詢、修改、添加、刪除課程信息的相關(guān)操作。該模塊功能的適用對象為管理員。
(4)學(xué)生查詢:管理員權(quán)限下,在窗體上顯示所有學(xué)生信息,并能夠提供根據(jù)學(xué)號查詢相關(guān)學(xué)生信息的操作。學(xué)生權(quán)限下,僅提供學(xué)生使用自己學(xué)號和密碼登陸的學(xué)生信息。
(5)課程查詢:管理員權(quán)限下,在窗體上顯示所有課程信息,并能夠提供根據(jù)課程號查詢相關(guān)學(xué)生信息的操作。學(xué)生權(quán)限下,僅提供學(xué)生使用自己學(xué)號和密碼登陸的課程信息。
學(xué)生管理系統(tǒng)主要功能為登陸及查詢,這些功能的實現(xiàn)與數(shù)據(jù)庫及T-SQL語言密不可分。在實現(xiàn)系統(tǒng)功能代碼之前,務(wù)必設(shè)計和實現(xiàn)好系統(tǒng)所需要的數(shù)據(jù)庫、數(shù)據(jù)表、約束、索引、視圖、存儲過程、函數(shù)及觸發(fā)器。以下為學(xué)生管理系統(tǒng)后臺“學(xué)生管理數(shù)據(jù)庫”的數(shù)據(jù)表設(shè)計:
(1)學(xué)生信息表:學(xué)號(nvarchar(6),not 1,PK),姓名(nvarchar(6),not 1),班級(nvarchar(10),1),e-mail(nvarchar(20),1),密碼(char(6),not 1)。
(2)課程信息表:課程編號(nvarchar(4),not 1 PK),課程名稱(nvarchar(10),not 1)。
(3)選課信息表:學(xué)號(nvarchar(6),not 1,PK/FK),課程編號(nvarchar(4),not 1 PK/FK),成績(decimal(5,1),1)。
(4)管理員表:賬戶名(nvarchar(8),not 1,PK),密碼(char(6),not 1)。
4、系統(tǒng)功能實現(xiàn)
根據(jù)系統(tǒng)設(shè)計思路將系統(tǒng)前臺界面及后臺數(shù)據(jù)庫設(shè)計和創(chuàng)建好之后,系統(tǒng)功能的實現(xiàn)需要在VB中通過設(shè)置控件屬性,編寫按鈕、菜單及控件代碼來實現(xiàn)。以下以登錄模塊為例,闡述登錄界面的前臺設(shè)計及登錄按鈕訪問后臺數(shù)據(jù)庫實現(xiàn)的登錄功能。
(1)登錄界面控件及屬性設(shè)置如圖2:
(2) 登錄界面中代碼實現(xiàn)如下:
Private SqlCon As New ADODB.Connection
Private SqlRes As New ADODB.Recordset
Private SqlCmd As New ADODB.Command
Public loginname As String '定義Public變量loginname,在窗體間傳值
----------------------------------------------------------------------------------------------------------------------
Private Sub exit_button_Click()
End
End Sub
----------------------------------------------------------------------------------------------------------------------
Private Sub Form_Load()
Adodc1.Visible = False
SqlCon.Provider = \"SQLOLEDB\"
SqlCon.Open \"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=MBOOK;Data Source=YE\"
SqlCmd.ActiveConnection = SqlCon
End Sub
----------------------------------------------------------------------------------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
SqlCon.Close
End Sub
----------------------------------------------------------------------------------------------------------------------
Private Sub L_button_Click()
If R_radio.Value = True Then
SqlCmd.CommandText = \"select 密碼 from 學(xué)生信息表 where 學(xué)號='\" login_name.Text \"'\"
Set SqlRes = SqlCmd.Execute
If Not SqlRes.EOF Then
If password.Text = SqlRes(\"密碼\") Then
loginname = login_name.Text
login.Hide
main.Show
Else
Call MsgBox(\"密碼錯誤!\")
End If
Else
Call MsgBox(\"登錄名錯誤!\")
End If
ElseIf A_radio.Value = True Then
SqlCmd.CommandText = \"select 密碼 from 管理員表 where 賬戶名='\" login_name.Text \"'\"
Set SqlRes = SqlCmd.Execute
If Not SqlRes.EOF Then
If password.Text = SqlRes(\"密碼\") Then
loginname = login_name.Text
login.Hide
main.Show
Else
Call MsgBox(\"密碼錯誤!\")
End If
Else
Call MsgBox(\"登錄名錯誤!\")
End If
End If
End Sub
5、結(jié)論
本文結(jié)合實訓(xùn)項目中對學(xué)生管理系統(tǒng)進(jìn)行了分析、設(shè)計與實現(xiàn)。采用了以C/S結(jié)構(gòu)為系統(tǒng)體系結(jié)構(gòu),實現(xiàn)了以VB為前臺界面,以SQL Server實現(xiàn)后臺數(shù)據(jù)庫創(chuàng)建的管理系統(tǒng)功能。通過設(shè)計管理權(quán)限的不同對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行科學(xué)管理、分權(quán)限查詢和添加、修改、刪除操作。一個完備的信息發(fā)布系統(tǒng)的開發(fā)是一項復(fù)雜的系統(tǒng)工程,希望在以后的工作中能繼續(xù)完成以下方面的內(nèi)容:
(1) 完善權(quán)限管理部分的功能??紤]是否可以利用SQL Server的安全性功能來實現(xiàn)。
(2) 適當(dāng)創(chuàng)建視圖、存儲過程、函數(shù)及觸發(fā)器,為更復(fù)雜的管理系統(tǒng)打基礎(chǔ)。
(3) 在設(shè)計系統(tǒng)和打包工程時將系統(tǒng)分成服務(wù)器端安裝和客戶端安裝兩部分安裝文件,真正發(fā)揮C/S結(jié)構(gòu)的最大特點。
參考文獻(xiàn)
[1]孫玉寶.基于工作任務(wù)的SQL Server 2008數(shù)據(jù)庫應(yīng)用.東軟電子出版社,2011.
[2]吳昌平.Visual Basic程序設(shè)計(第二版).人民郵電出版社,2007.
[3]李天真.李宏偉 .Visual Basic程序設(shè)計項目教程.科學(xué)出版社,2009.