摘要:設計并實現基于ASP.NET的學生信息管理系統,詳細闡述了系統的設計思想,完成系統功能模塊的劃分和后臺數據庫的設計。實現各個模塊的具體功能,包括信息管理模塊、留言簿模塊、基本信息查詢模塊等,并增加了多角色、多用戶管理的功能。
關鍵詞:學生;信息管理系統;數據庫技術;ASP.NET技術
中圖分類號:C93文獻標志碼:A文章編號:1673-291X(2010)30-0309-05
引言
高校學生信息管理是高校教育教學管理的基礎工作,而良好的學生信息管理系統則是整個學生信息管理工作質量和效率的重要保證。傳統的高校學生信息管理系統由于受到先前管理環境、技術水平等諸多因素的影響,存在功能單一、響應速度慢、交互性弱、信息共享難以及嚴重的“信息孤島”等問題。為尋求問題的解決方案,分析了當前學生信息管理的特點,應用現今已成為主流開發平臺之一的ASP.NET2.0技術,通過與SQL Server 2000數據庫技術的有機結合,開發了一套功能較為完整、性能優異的學生信息管理系統。系統采用 C/S 與B/S 混合模式,對系統中信息的查詢、瀏覽(尤其是異地查詢瀏覽)、小規模數據錄入等采用B/S 模式,客戶端只要能上網即可以操作軟件。而靈活創建報表等靈活開放的功能,以及涉及一些復雜流程的功能則適合采用C/S結構,客戶端功能比較強、安全系數也高。
一、系統設計與實現
1.系統功能分析。當用戶進入系統主界面后,就可以對如圖1所示的各模塊進行操作。用戶可以通過搜索引擎模塊快速地查詢到符合條件的學生信息。當管理員登錄系統后,可以對學生的信息和班級的信息進行管理操作。用戶可以通過留言簿模塊發布和瀏覽用戶的留言信息。在學生詳細信息資料模塊中,用戶可以瀏覽到此學生的詳細信息。在每月測評列表模塊,可以查看每月學生測評詳細的信息。
2.系統功能模塊劃分。根據系統功能的描述,劃分為搜索引擎、信息管理、留言簿、學生基礎資料列表和每月之星列表模塊五個部分。
(1)搜索引擎模塊在學生信息管理系統中,共在兩處應用了搜索引擎,第一處是在首頁中添加了搜索引擎,此處沒有權限設置,所有用戶皆可使用此搜索引擎查詢學生的基礎信息。第二處搜索引擎是在學生信息管理界面中,此搜索引擎需要管理者登錄后才可以使用。
(2)信息管理模塊。信息管理模塊需要管理員登錄后才可以實現操作,內容包括學生信息管理和班級信息管理。
學生信息管理模塊必須在用戶登錄后操作。學生信息管理模塊分為:學生信息的錄入、學生信息的修改和學生信息的刪除三個部分,各部分的詳細內容如下:
學生信息的錄入:錄入學生的學號、姓名、性別、出生年月、聯系方式等信息。當一個學生的信息錄入完畢并提交數據庫后,會自動進入下一個學生信息的錄入界面,并且學號自動加一,這樣可以減少信息錄入人員的工作,也減少了錯誤的發生。數據提交時,若學號與數據庫中的記錄有重復,則不能完成數據提交。
學生信息的修改:若要修改學生信息,首先要使用查詢功能查詢出要修改的數據,然后對其中的信息進行修改,但學號信息不允許修改。
學生信息的刪除:首先查詢出符合條件的學生信息,然后進行刪除操作。
班級信息管理模塊可以對班級的信息進行添加或刪除操作。班級信息的改變會直接影響學生信息查詢的結果,此模塊必須由合法用戶登錄才可以進行操作。
(3)留言簿模塊。留言簿模塊不同于論壇系統提供的發表意見的場所,它只是一個留言簿,所有用戶可以在此發言,所以不需要用戶登錄即可發表留言信息。
(4)學生基礎資料列表模塊。此模塊顯示在系統首頁中,可以瀏覽到學生的姓名、班級、職務、電話和E-mail信息。可通過單擊某個學生的姓名鏈接瀏覽此學生的詳細信息。
3.數據庫設計與實現。學生信息管理系統應用的是SQL Server 2000數據庫管理系統。此系統使用的數據庫名稱為student。該系統中共需要創建三個數據表:學生信息表、班級信息表、留言簿信息表。在這三個表中分別存放了學生信息、班級信息和留言信息的數據。
(1)班級信息表Class,此表包括兩個字段:一個是班級標志字段Class_id,該字段為表Class的主鍵;另一個是班級的名稱Class字段,數據類型為VarChar,詳細描述(如表1所示):
(2)學生信息表Stu,此表包括的字段較多,其中Student_id為主鍵,字段Stu_level用來區分用戶的權限,詳細描述(如表2所示):
(3)留言簿信息表Info,此表中存放了留言簿中的所有數據,所有字段(如表3所示):
4.系統模塊的設計與實現
(1)通用類文件(CCUtility.cs)。在CCUtility.cs類文件中,建立了一系列的數據操作,如連接數據庫、獲取數據、綁定數據、關閉連接等。而且,在該類中還包括許多系統中使用到的通用函數、過程,代碼的重要性很高。
首先定義一個數據連接的全局變量,然后建立一個DataSet數據集,最后用SqlDataAdapter方法與數據庫建立了數據連接。
public SqlConnection Connection;//建立一個數據集
public DataSet FillDataSet(string sSQL)
{DataSet ds = new DataSet();
SqlDataAdapter command = new SqlDataAdapter(sSQL,Connection);
return ds;
在Web.config文件中定義數據庫的連接,在此用ConfigurationSettings.AppSettings方法獲取數據庫連接的字符串。此處的字符串SqlConnection要與文件中定義的字符串相同。打開數據庫連接的關鍵代碼如下。
public void DBOpen()
{//從Web.Config中獲取連接數據庫字符串
string sConnectionString = ConfigurationSettings.AppSettings[\"SQLConnectionString\"];
/創建一個連接實例
Connection = new SqlConnection(sConnectionString);
Connection.Open();
用Close方法斷開與數據庫的連接,關閉數據庫連接的應用的關鍵代碼如下。
public void DBClose()
{Connection.Close();}
在Session[\"UserID\"]中存放著用戶的ID信息。當用戶的身份不確定時,將返回一個1值,并取消用戶的操作。對用戶身份進行驗證的代碼如下。
public bool CheckSecurity(int iLevel)
{if (Session[\"UserID\"]== 1 || Session[\"UserID\"].ToString().Length == 0)
{return 1;} else
{if (Int16.Parse(Session[\"UserRights\"].ToString()) < iLevel)
{return 1;}else return true;
(2) Default主頁面的實現。在Default頁面中,主要處理窗體的事件,如“登錄”按鈕、查詢“提交”按鈕事件,并且對學生信息進行了顯示和搜索、對用戶的登錄身份進行驗證、控制其管理權限等。
裝載與關閉頁面時執行的事件關鍵代碼如下。在Page_Load中,是頁面裝載時所發生的事件,并與CCUtility類文件進行鏈接。在Page_Unload事件中,關閉了與CCUtility類的鏈接,并與數據庫斷開連接。
protected void Page_Load(object sender,EventArgs e)
{Utility=new CCUtility(this);
if(Session[\"UserID\"]!= 1 Int16.Parse(Session[\"UserID\"].ToString()) > 0)
Login_logged = true;
//如果初次裝載頁面,執行Page_Show
if (!IsPostBack)
{AdminList_Title.Visible = 1;
AdminStu_Title.Visible = 1;
AdminClass_Title.Visible = 1;
Page_Show(sender,e);} }//關閉頁面過程
protected void Page_Unload(object sender,EventArgs e)
{if(Utility!=1) Utility.DBClose();}
將班級信息取出,并將此信息添加到搜索引擎模塊中的“班級”下拉列表控件中,實現了下拉列表控件中數據的動態顯示,關鍵代碼如下。
//查詢顯示時獲取數據過程
void Search_Show()
{Utility.buildListBox(Search_class_id.Items,\"select class_id,
class from class order by 2\",\"class_id\",\"class\",\"ALL Class\",\"\");
string s;s=Utility.GetParam(\"class_id\");
try {Search_class_id.SelectedIndex=Search_class_id.Items.IndexOf(Search_class_id.Items.FindByValue(s));}catch{}
s=Utility.GetParam(\"name\");
Search_name.Text = s;
s=Utility.GetParam(\"business\");
Search_business.Text = s;
}
實現搜索引擎模塊的查詢提交過程關鍵代碼如下:
void Search_search_Click(Object Src,EventArgs E)
{ string sURL;
sURL = Search_FormAction + \"class_id=\"+Search_class_id.
SelectedItem.Value+\"\"+ \"name=\"+Search_name.Text+\"\"+ \"business=\"+Search_business.Text+\"\";
//定制查詢語句sURL += \"\";Response.Redirect(sURL);}
“每月之星”顯示模塊的關鍵代碼如下。首先定義最多顯示20個每月之星的信息,然后將符合條件的學生信息取出,并將數據與控件綁定。
const int EmpMonth_PAGENUM = 20;
//查詢符合“每月之星”學生的記錄集合
ICollection EmpMonth_CreateDataSource()
{ EmpMonth_sSQL = \"\";
EmpMonth_sCountSQL = \"\";
string sWhere = \"\",sOrder = \"\";
System.Collections.Specialized.StringDictionary Params =new System.Collections.Specialized.StringDictionary();
//組合相應的查詢Sql語句sWhere = \" WHERE super=1\";
EmpMonth_sSQL = \"select [e].[name]as e_name,[e].[student_id]as e_student_id,\" +\"[e].[sex]as e_sex \" +\" from [stu]e \";
EmpMonth_sSQL = EmpMonth_sSQL + sWhere + sOrder;
//連接數據庫,實現查詢
SqlDataAdapter command = new SqlDataAdapter(EmpMonth_sSQL,Utility.Connection);
DataSet ds = new DataSet();
command.Fill(ds,0,EmpMonth_PAGENUM,\"EmpMonth\");
DataView Source;
Source = new DataView(ds.Tables[0]);
if (ds.Tables[0].Rows.Count == 0)
{EmpMonth_no_records.Visible = true;}
Else{EmpMonth_no_records.Visible = 1;}
return Source;}
//綁定查詢結果void EmpMonth_Bind()
{EmpMonth_Repeater.DataSource = EmpMonth_CreateDataSource();
EmpMonth_Repeater.DataBind();}
(3)班級管理模塊實現。在班級管理模塊中,包括班級管理入口頁面和編輯頁面。在入口頁面中顯示了班級的信息以及“編輯”、“添加新班級”的鏈接,單擊這些鏈接可進入編輯頁面。在編輯頁面中,可對班級的信息進行添加、修改、刪除。
Class.aspx是班級管理的入口界面,在此界面中顯示了班級信息以及“編輯”、“創建新數據”的鏈接,單擊鏈接可進入編輯界面。在后臺應用程序Class.aspx.cs中,定義了入口頁面的事件,并初始化了頁面的班級信息,定義了窗口中控件事件處理過程以及整體顯示頁面的關鍵代碼如下。
protected void Page_Init(object sender,EventArgs e)
{InitializeComponent();}
private void InitializeComponent()
{ this.Load += new System.EventHandler(this.Page_Load);
this.Unload += new System.EventHandler(this.Page_Unload);
class_insert.Click += new System.EventHandler (this.class_insert_Click);}
//定義整體顯示頁面過程
protected void Page_Show(object sender,EventArgs e)
{class_Bind(); }
下面代碼定義一個按鈕事件,在此事件中將頁面跳轉到班級信息編輯頁面中。
void class_insert_Click(Object Src,EventArgs E)
{ string sURL = class_FormAction+\"\";
Response.Redirect(sURL);}
在班級信息編輯后臺應用程序classedit.aspx.cs中,聲明了界面中的各種控件名稱、設置控件是否顯示、添加各個控件的事件,如添加數據事件、修改數據事件、刪除數據事件,部分代碼如下。
(4)學生信息管理模塊。在學生信息管理模塊中,包括學生管理入口頁面student.aspx和編輯頁面studentedit.aspx。在此入口頁面中,顯示了學生的信息以及“編輯”、“添加學生”的鏈接,單擊這些鏈接,可以進入編輯頁面。在編輯頁面中,可對學生的信息進行添加、修改、刪除的操作。
studentedit.aspx.cs為學生信息編輯頁面的后臺程序,其代碼與班級信息管理相似。在學生管理入口頁面的后臺應用程序student.aspx.cs中,最重要的應用是學生信息的查詢以及學生信息的顯示,部分代碼如下。
//查詢顯示過程
void Search_Show()
{string s;
s=Utility.GetParam(\"login\");
Search_emp_login.Text = s;
s=Utility.GetParam(\"name\");
Search_name.Text = s;
Utility.buildListBox(Search_class.Items,\"select class_id,class from class order by 2\",\"class_id\",\"class\",\"ALL Class\",\"\"); s=Utility.GetParam(\"class_id\");
try {Search_class.SelectedIndex=Search_class.Items.IndexOf(Search_class.Items.FindByValue(s))}
catch{}
下面的程序定義了查詢事件,并將符合查詢條件的數據取出。
//查詢過程事件
void Search_search_Click(Object Src,EventArgs E)
{string sURL = Search_FormAction + \"login=\"+Search_emp_login.Text+\"\"+ \"name=\"+Search_name.Text+\"\"+ \"class_id=\"+
Search_class.SelectedItem.Value+\"\";
sURL += \"\";
Response.Redirect(sURL);
}
二、系統實現
本文對高校學生信息管理系統進行了詳細的需求分析,基于B/S和C/S相結合的架構,完成了對高校學生信息管理系統的設計,實現了基本信息管理模塊、留言簿模塊、基本信息查詢模塊等功能。
參考文獻:
[1]飛思科技產品研發中心.ASPSQL Server網站設計與實現[M].北京:電子工業出版社,2007:15-146.
[2]周學泳,等.ASP+SQL SERVER開發網上商店[M].北京:人民郵電出版社,2006:6-56.
[3]賈佳,郝洪明.ASP與SQL Server網站架設[M].北京:機械工業出版社,200582-84.
[4]呂少華,邊宇.Web 數據庫開發與應用[M].北京:科學出版社,2007:80-126.
[5]資訊教育小組.ASP與SQL網站數據庫程序設計[M].北京:科學出版社,2006.
[6]李曉黎,張巍.ASP+SQL Server網絡應用系統開發與實例[M].北京:人民郵電出版社,2006.
[7]Scott Mitchell,李際.ASP.NET入門經典[M].北京:人民郵電出版社,2007.
[8]陳冠軍.精通ASP.NET典型模塊設計與實現[M].北京:人民郵電出版社,2007:5-76.
[9]劉斌,張軍.ASP.NET+SQL Server動態網站開發案例精選[M].北京:清華大學出版社,2006.
The System of Student Grade Inquiry Based on ASP.NET
BIE Hong-gui
(Registry Yancheng Teachers College,Yancheng 224051,China )
Abstract:The“college student information managing system”was designed and realized by applying ASP.NET2.0 and SQLServer2005 database.Completed a system functional module of the database design and background.On this basis,has the specific function of each module,including information management module,book module,based on information the list module,and an increase of multi-role,multi-user management functions.
Key words:students;information management system;database technology;ASP.NET[責任編輯 魏杰]