代成杰
小型網絡填報系統的實現
代成杰
筆者所在部門每年都要做下屬各基層中小學學校校園信息化情況的數據調查和統計工作。每一年到需要調查統計的時候,筆者所在部門都會出現三四個人為此項工作忙上一星期左右的情況。
但是,自從筆者開發了一個小型網絡填報系統后,這一狀況就徹底改變了。筆者每年只需要兩三個小時完成數據統計和分析就可以了。
整個體系模型如圖1所示:

圖1 體系模型
其中填報服務器由筆者完成,每所下屬學校通過Web方式登錄服務器并完成數據填報就可以了。這樣的小型網絡填報系統具有廣泛應用的意義,目前很多部門或行業的調查數據都可以采用本文所述的方法,這樣避免了紙質數據傳遞和統計工作復雜、易出錯的問題;也避免了使用簡單的Excel電子表格,用戶可以隨意填寫,導致不易進行匯總統計的問題。
1.硬件
準備一臺服務器,配置不需要很高。
下面是筆者所用服務器的具體配置:
聯想服務器:萬全T100。
處理器:Intel Pentium IV 1.7 GHz 處理器。
內存:256 MB ECC DDR內存(筆者給該服務器升級到512 MB)。
硬盤:80 GB。
2.安裝服務器操作系統和服務基礎組件
在上面的服務器上,安裝好服務器版本的操作系統和IIS等服務組件。
目前,雖然軟件公司在開發這樣的系統時更加專業,但基本方法都是一致的,對于經費有限而且數據保密級別不高的調查都可以采用類似本文的系統。也希望越來越多的這樣的小型網絡填報系統出現,方便大家的工作和學習。
2011-09-28
代成杰,本科,中教二級,教研員。
遼寧省沈陽市鐵西區教師進修學校。
筆者在服務器上安裝的是Windows Server 2003操作系統,安裝并配置好IIS組件。
3.編寫網絡填報網站代碼
可以使用的語言有很多,由于可以進行網絡填報,所以一定要使用動態網站語言。由于服務器使用Windows Server 2003操作系統,所以建議使用ASP語言或者ASP.NET語言。
ASP是Active Server Page的縮寫,是微軟公司開發的代替CGI腳本程序的一種應用,它可以與數據庫和其他程序進行交互,是一種簡單、方便的編程工具。ASP誕生于1996年,并且不斷發展,直到后來ASP.NET出現。
ASP.NET比ASP的功能更強大,執行效率更高,而且安全性更高。ASP.NET一般可以分為兩種開發語言,VB.NET和C#。這兩種語言都比較簡單易學。而且微軟為ASP.NET設計開發了所見即所得的開發工具Visual Studio.NET。鑒于ASP.NET的優越性,筆者選擇了ASP.NET中C#語言來編寫網絡填報網站的代碼。
(1)登錄
網絡填報系統登錄界面的主窗口如圖2所示。

圖2 登錄界面
由于系統數據全部要求是真實有效數據,所以,網站一定要求用戶登錄后才能進行數據填報。
在保存用戶身份上,可以使用Cookie或者Session這兩種方式,我們一般使用Cookie來記錄用戶的身份,而且需要在每次用戶提交填報數據時都進行Cookie的用戶身份驗證。
在設置輸入密碼文本框的時候,注意一定要設置成密碼類型,這樣可以防止用戶輸入密碼時被別人看到。本系統需要給每所學校分配一個初始密碼,同時也建議在做此類系統時給每個用戶分配不同的初始密碼,這樣可以防止某些人很隨意地用統一的密碼使用其他人的用戶身份登錄系統,并隨意增加、修改數據。另外后臺數據庫可以對密碼字段使用MD5進行加密,這樣又增加了系統安全性。
(2)填寫數據
用戶進入填寫數據頁面就可以進行數據填寫了。圖3是筆者做的填報系統的頁面。

圖3 填報頁面
在這樣一個頁面上,我們需要對用戶填寫的數據進行驗證,防止用戶填寫不規范的數據。比如,在需要填寫人數的文本框中限定“用戶只能填寫數字”,并且必須是整數。而且,一般教師數會多于學生數,所以,還可以添加限定“教師數多于學生數”,否則不允許數據提交到后臺數據庫。
另外,考慮到用戶可能已經填寫完數據了,本次登錄僅僅為了修改錯誤的數據。所以,我們在每次用戶進入填寫頁面時,進行數據預讀取。如果讀取到原來填寫的數據,說明用戶已經填報了,我們可以認為用戶本次登錄是為了查看數據或者修改錯誤的數據。如果沒有讀到數據,那么用戶可以逐項填寫,最后點擊提交以便將數據寫入后臺數據庫。
(3)數據明細顯示
在所有數據完成輸入后,建議大家將所有數據明細進行顯示,以便用戶最后確認,筆者抓取該界面的部分作為示范(如圖4所示)。不便于泄漏系統真實數據,這里使用虛數示例。

圖4 數據明細顯示頁面
(4)虛擬用戶
一般的軟件公司在做系統時,往往會有專業的測試隊伍對系統進行測試。但作為一個人或者幾個人開發的小型系統,往往可能有潛在的漏洞或錯誤,所以,對于這個僅由筆者一人開發的小系統,筆者在其中保留了一個測試賬戶,這個賬戶一直可以像普通登錄用戶一樣使用,以便在任何時候,筆者都可以模仿普通用戶登錄,并重復真實用戶遇到的某個錯誤,這樣便容易發現系統問題。但是在最后處理數據的時候要記得將這個虛擬用戶的所有數據剔除。
4.網站后臺數據庫
最初筆者使用了SQL Server 2000作為后臺數據庫,原因如下:SQL Server 2000是網絡級數據庫,并且SQL Server 2000比Access數據庫要安全很多,而且SQL Server 2000的操作非常簡單,既可以使用圖形界面,也可以使用SQL語言代碼進行操作。
但是運行中發現,SQL Server 2000對系統的資源耗費很大,加之網絡帶寬的原因,有時候服務器響應速度很慢。
同時,鑒于筆者服務器所在網絡環境比較安全,筆者將網站后臺數據庫改用Access。雖然Access屬于桌面級的數據庫,但我們是通過網站代碼直接訪問Access數據庫文件,所以,使用Access數據庫對系統的資源耗費是極其小的,實踐應用中,效果也非常明顯。使用SQL Server 2000作為后臺數據庫時,有很多基層信息技術教師反應服務器響應緩慢,現在都反應服務器響應很快,鼠標點擊后,服務器就能夠響應了。
由此可見,后臺數據庫更改為Access還是非常成功的,這也是為什么很多小型網站使用Access作為后臺數據庫的原因。當然,如果服務器配置比較高,還是建議使用SQL Server數據庫,可以使用SQL Server 2000或更高版本。
5.數據統計
SQL Server 2000或者Access都支持SQL查詢,而且它們中的數據也可以方便地進行導出,所以在數據處理上,我們可以使用SQL查詢的方式,如下面一句代碼:
SELECT sum(tx_Basic.StuNum) AS 學生總數, sum(tx_Info.CpuStuNum) AS 學生機總數 FROM (tx_ Basic INNER JOIN tx_ Info ON tx_ Basic.SchNam=tx_ Info.SchNam)
部分數據也可以通過導出到Excel中進行處理,總之,自己習慣使用哪種方法就使用哪種方法,只要能夠又快又好又準確地完成工作任務就可以。