摘要:從考試管理的實際需求出發,以實現在線考試管理為目標,討論了系統體系結構,功能模塊及實現的關鍵技術。采用微軟.NET 平臺,ADO.NET 技術,SQL Server 2005 數據庫,設計并實現了基于ADO.NET的在線答題管理系統。系統實現了基于知識點的動態組卷管理,極大地提高了考試管理的準確性與效率。
關鍵詞:ADO.NET;數據適配器;數據訪問;數據集;數據庫
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)36-10602-02
Design and Implementation of Online Examination Management System Based on ADO.NET
HUANG Yi, HE Xiao-feng, ZHOU Xu-yuan
(College of Computer Science, Chongqing University of Arts and Sciences, Chongqing 402160, China)
Abstract: According to the real situation of examination management, aimed at the online examination information management, the structure, function model and key technology of the system is discussed. A online examination information management system based on ADO.NET technology is designed and implemented by use .NET platform of Microsoft, ADO.NET technology, and SQL Server 2005 database. With the implementation of system, the dynamic paper management of knowledge points come true, the accuracy and efficiency of management is improved highly.
Key words: ADO.NET; data adapter; database accessing; dataset; database
隨著教學改革的深入,傳統考試方式的弊端日益凸現,不必要的重復勞動造成人力資源和時間上的浪費,試卷命題質量受教師主觀因素的影響而難以做到客觀公正,判卷過程中容易出現錯判、漏判以及缺乏衡量教學效果的有效機制等。因此,迫切需要一種能夠實現考試自動化、網絡化的在線考試系統,不僅能夠大大降低教師的勞動強度、提高教學質量,而且通過評價機制,針對不同的教學內容調整教學方法,從而達到教考分離、教學資源共享、科學評價教學效果、合理安排教學的教改目標[1]。開發通用的高校在線答題系統,符合各高校在今后的發展趨勢,在線作答已成為當今社會考試、審核的重要手段。
1 系統核心技術
1.1 .NET Framework框架
.NET Framework框架是.NET戰略的基礎,它提供給我們一個一致的編程環境,無論是本地的代碼執行還是網絡上的代碼執行,它都使我們的編程經驗在面對類型不同的應用程序時保持一致。提供了一個面向對象的編程環境,完全支持面向對象編程。提高軟件的可復用性、可擴展性、靈活性。它包括CLR(公共語言運行時)和框架類庫[2]。CLR用于解決不同語言的數據類型不同的問題和指定了一種以.Net平臺為目標的語言所必須支持的最小特征以及該語言與其他.Net框架下都可以實現互操作性所需要的完備特征。.NET框架類庫提供了大量好用的實用的類包括基礎數據庫類、I/O訪問、安全控制、數據訪問、XML描述數據的文件格式等。對Web應用與web service(Web服務)的強大支持等。
1.2 ADO.NET對象模型
.NET數據庫核心為ADO.NET,它提供了對關系數據庫、XML以及其他數據存儲的訪問。它最大的優點是,它與數據庫源斷開連接時也可以使用數據庫。ADO.NET提供了兩個組件:.NET Framework數據提供程序和DataSet(數據集)[3]。ADO.NET 中有5個主要的數據庫訪問和操作對象,分別是Connection、Command、DataReader、DataAdapter、DataSet 對象。它們的操作數據庫結構圖如圖1所示。不同的命名空間都用相應的對象,比如我們要操作SQL Server數據庫,要使用System.Data.SqlClient使用OLEDB要用System.Data.OleDb。
1) Connection 對象主要負責連接數據庫,可根據Connection對象的各種不同屬性來指定數據源的類型、位置及其他屬性,可用它來與數據庫建立連接或斷開連接。根據所連接的數據庫不同,.NET Framework數據提供程序也有不同的Connection,如針對SQLServer的SqlConnection、針對Oracle的OracleConnection、針對MySQL的MySqlConnection、針對OLEDB的OleDbConnection等。
2) Command對象封裝了與用戶想要完成的動作相關的數據庫命令,在一般情況下這些命令就是SQL語句。
3) DataReader對象主要負責讀取數據庫中的數據,DataReader以只進、只讀方式返回數據,從而提高應用程序的性能。
4) DataAdapter提供連接DataSet對象和數據源的橋梁。DataAdapter使用Command對象在數據源中執行SQL命令,以便將數據加載到DataSet中,并使DataSet中數據的更改與數據源保持一致。
5) DataSet 對象主要負責存取和更新數據,最大優點是離線和連接。DataSet既可以以離線方式,也可以以實時連接方式來操作數據庫中的數據。這樣的好處是大大減少了服務器端數據庫的連接線程,從而大大地減少了服務器端的運行壓力。所以,在數據量不大的情況下,使用DataSet是最好的選擇。
2 系統的設計與實現
2.1 數據庫設計
根據系統功能設計的要求以及模塊的劃分,主要的數據表:學員信息表(Student):用戶名、密碼、用戶狀態、班級、學號、姓名、性別、身份證號、主修科目、就讀院校、電話、地址、郵編、期望的工作、電子郵件。管理員信息表(Admin):用戶名、密碼。教員信息表(Teacher):用戶名、密碼、用戶狀態、姓名、性別、生日。試題表(Question):問題編號、問題內容、答案、試題難度、科目Id、各個選項的內容。
2.2 基本模塊與總體框圖
管理員模塊:管理員只有唯一的用戶名和密碼,經系統驗證后方可進入系統,進入系統后管理員擁有所有用戶的最大權限。包括新增學員、新增教員、查詢及修改學員、學員信息列表、教員信息列表、題庫管理等權限。
教員管理:該模塊用于增加試題,查詢試題,教師可根據不同的科目增加相應的試題內容。
學員管理:學員登錄考試管理系統需要進行身份驗證,一個學員對應一個用戶名和密碼,管理員在考試開始前需要導入學生的必要信息,如學號、姓名、班級、姓名、性別、身份證號、主修科目等。除上述考試信息外,還需導入用戶注冊信息:用戶名、密碼、用戶狀態(活動||不活動)。
用戶和用戶角色管理:用戶管理模塊對使用本系統的用戶進行用戶名、密碼、用戶身份的驗證,確保了系統的安全性。
試題的錄入管理:指具有相應權限的用戶對試題的錄入、修改、刪除等管理,試題的錄入要按照題型錄入。
自動組卷:主要是學員登錄后在線答題,系統隨機抽取試題,組合成一套試卷,最后自動閱卷,試題是由教員添加。系統總的流程框架圖,如圖2所示。
2.3 使用ADO.NET連接數據庫
.NET為SQL Server提供的連接類是SqlConnection,其實現System.Data.IDbConnection 接口,用于實現與數據源的連接,同時建立了一個連接數據庫字符串得DBHelper類與UserHelper類。
要與一個 SQL SERVER 數據庫建立連接,首先引入命名空間:
Using System.Data;
Using System.Data.SqlClient;
具體的使用://查詢語句。
String sql=string.Format (\"select Id, Name from Admin where FromUserId= {0} and MessageTypeId=1 \", loginId, UserHelper.loginName);
//command對象負責對數據庫執行命令。
SqlCommand command = new SqlCommand (sql, DBHelper.connection);
//打開和關閉數據庫連接,使用了靜態字段。
DBHelper.connection.Open ();
DBHelper.connection.Close ();
使用DataAdapter對象和DataSet對象實現考試信息查找及隨機抽題等。其具體實現,這里不再一一闡述。
3 結論
建立在線考試系統方便學習者自主測驗,及時得到反饋信息,從而有計劃、有步驟、系統地調整學習進度,使學習更有效。與此同時,教師(或管理)可以通過系統對學生信息的分析統計,有針對性地為學習者提供指導。掌握ADO.NET 數據存取技術,可以使上下級數據庫、同級數據庫之間數據一致性得到保證的同時[4],程序執行速度更快,編程方式更加靈活,使用的對象模型更豐富,從而大大提高程序開發效率。
參考文獻:
[1] 陳華清.基于WEB 考試信息管理系統的設計與實現[J].電腦知識與技術:學術交流,2009,5(17):4422-4424.
[2] Microsoft Corporation.ADO.NET技術文檔[EB/OL].http://msdn.microsoft.com/zh-cn/library/ms971481.aspx.
[3] 詹發榮.ADO.NET數據訪問體系結構研究[J].電腦知識與技術:學術交流,2009,5(20):5339-5340.
[4] 趙雪峰.ADO.NET數據訪問技術在電子檔案管理系統中的應用[J].通信技術,2009(8):123-125.