【摘要】本文介紹了利用ASP+Access編寫圖書管理系統的實現主要步驟與部分技術代碼。
【關鍵字】ASP;Access
隨著計算機網絡技術的普及和發展,現已逐漸進入信息化社會。人們對信息和數據的利用與處理也已進入自動化、網絡化和社會化的階段,因此,開發基于網絡平臺的圖書管理信息系統已經成為圖書管理部門的必要因此,我按照圖書管理部門的需要,采用ASP+Acces實現了此圖書管理系統。
一、ASP+Access
ASP是Active Server Page的縮寫,意為“動態服務器頁面”。ASP是微軟公司開發的代替CGI腳本程序的一種應用,它可以與數據庫和其它程序進行交互,是一種簡單、方便的編程工具。
Microsoft Office Access(前名 Microsoft Access)是由微軟發布的關聯式數據庫管理系統。它結合了Microsoft Jet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office的成員之一。
由于Access存儲方式簡單,易于維護管理、移植性好,所以本系統采用ASP做為編程工具、Access做數據庫來開發
二、系統模塊
此系統共分為八大模塊,包括圖書簡介、規章制度、圖書錄入、歸還圖書、圖書查詢、新購圖書、未歸圖書、系統維護。名模塊的功能如下:
㈠圖書簡介:把圖書進行分類和定義索書號,以方便查詢。
㈡規章制度:主要介紹圖書管理的訂購、借閱、歸還等制度。
㈢圖書錄入:對新購圖書按書名、作者、分類、編號等圖書信息進行錄入。
㈣圖書歸還:此模塊是圖書管理員對歸還的圖書,按照圖書編號進行入庫管理。
㈤圖書查詢:按圖書信息一些主要字段對數據庫進行查詢并顯示。
㈥新購圖書:查詢某一時間段以后所購買的圖書并顯示。
㈦未歸圖書:顯示未歸的圖書,并分頁顯示。
㈧系統維護:對數據庫進行備份和恢復。
三、設計數據庫
此圖書管理系統數據庫里主要有以下幾個表:
User:用來存儲圖書管理員的用戶名和密碼。字段為user、pwd。
Menu:存儲程序主頁面的菜單名稱和鏈接地址。字段為ID、父菜單ID、位置、URl、字體顏色、菜單項。
Bookinfo:用來存儲圖書的各種信息。字段為書名、作者、圖書分類、圖書編號、索書號、出版社、版期版次、購入日期、價格、排架號、是否借閱、借閱日期、應歸還日期、借閱科室、借閱人、備注。
Dept:用來存儲科室名稱。字段為dept。
四、程序設計
㈠登錄模塊及Session的使用
由于此系統有些功能是不允許普通用戶使用的,如圖書錄入、圖書歸
還等模塊,所以本系統采用以管理員登錄的方式,來判斷是何種用戶使用本系統,如果是普通用戶,點擊“以普通用戶登錄”,就可以使用本系統,但圖書錄入、歸還圖書和系統維護等模塊不能使用。
由于有些功能模塊不允許普通用戶使用,故在登錄模塊程序語句定義一個Session:Session(\"UserAcc\") = Trim(rs(\"User\"))。 Session在計算機中,尤其是在網絡應用中,稱為“會話”,用于保持狀態的基于 Web 服務器的方法。Session 允許通過將對象存儲在 Web 服務器的內存中在整個用戶會話過程中保持任何對象。因此,在限制普通用戶使用并用If判斷Session(\"UserAcc\")是否為空即可。
㈡表單驗證
在圖書錄入模塊中,需要填寫圖書的各種信息,在提交表單時如果某
些信息為空,IE就會顯示出錯,因此,在提交表單之前對表單進行驗證,JavaScript 可用來在數據被送往服務器前對 HTML 表單中的這些輸入數據進行驗證,只需編寫一個函數就可以實現。函數如下
function checkinput() {
if (frm.bookname.value=='') {
alert('請輸入書名');
frm.bookname.focus();
return 1;
}
}
在提交按鈕代碼中加入OnSubmit=\"Return checkinput()\"就可以完成對表單的驗證了。
㈢數據庫連接
對于Access數據庫,一個文件就是一個數據庫,所以可以利用數據驅動程序直接訪問數據,這種方法需要利用動態連接字符串建立一個連接,具體連接字符如下:
Dim conn, connstr,db
db=\"./data/tushu.mdb\"
connstr=\"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\"Server.MapPath(db)
Set conn=Createobject(\"ADODB.Connection\")
conn.Open connstr
這樣就可連接數據了,再用SQL語句就可以讀取表中數據了:
Set rs=CreateObject(\"ADODB.RecordSet\")
sql=\"Select * From bookinfo\"
rs.Open sql,conn,1,3
㈣對數據庫的操作
連接好數據庫后,我們就可以對表bookinfo的記錄進增加、刪除、修改等操作了。具體代碼及釋義如下:
(1):增加:
bianhao=Trim(Request(\"bianhao\"))
sql=\"Select * From bookinfo Where 圖書編號='\" bianhao \"'\"
rs.Open sql,conn,1,3
If rs.recordcount<>0 Then
Response.Write \"此圖書編號已存在,請重新輸入\"
Response.Write \"
\"
Response.Write \"
\"
Response.Write \"返 回\"
Else
注:在增加信息時,必須檢索圖書編號是否唯一,如不唯一會出給出提示:“此圖書編號已存在,請重新輸入”
rs.addnew
rs(\"書名\")=trim(request(\"bookname\"))
rs(“作者\")=trim(request(\"author\"))
……
rs.update
end if
Response.Redirect \"addbook.html\"
end if
set rs=nothing
(2)刪除
本系統“刪除”圖書記錄功能在查詢模塊中執行,但必須以管理員身份登錄,才能顯示對記錄進行操作的功能:
刪除記錄采用SQL中的delete語句,代碼如下:
bh=Request(\"bianhao\")
If bh<>\"\" Then
conn.Execute \"Delete From bookinfo Where 圖書編號='\" bh \"'\"
End If
(3)修改
修改只需rs.update命令即可完成,這里不再贅述。
(4)查詢
本系統有精確查詢、模糊查詢、分類查詢、編號查詢、索書號查詢、借閱人查詢共六種方法。用SQL中select…where…就可以完成查詢功能。如按分類查詢:
tiaojian=Trim(request(\"tiaojian\"))
Set rs=CreateObject(\"ADODB.RecordSet\")
sql=\"select * from bookinfo where 圖書分類= '\" tiaojian \"' order by 圖書編號 desc\"
rs.Open sql,conn,1,1
五、小結
此圖書管理基本上可以實現圖書管理的大部份工作,實現圖書的計算機管理,方便借閱人員查詢和借閱圖書,更好的利用圖書資源,把圖書管理員從手工記錄管理圖書中解脫出來,提高了工作效率。
【參考文獻】
[1]伍云輝. 程序天下 電子工業出版,2008
[2]武延軍,趙彬.精通ASP網絡編程. 人民郵電出版社,2000
[3][美]Michael Moncur JavaScript 入門經典 人民郵電出版,2007