白文秀,孫 慧
(1.吉林師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,吉林四平 136000;
基于實(shí)際案例的.NET與數(shù)據(jù)庫(kù)相結(jié)合的教學(xué)實(shí)踐分析
白文秀1,孫 慧2
(1.吉林師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,吉林四平 136000;
2.長(zhǎng)春師范大學(xué)圖書(shū)館,吉林長(zhǎng)春 130032)
在計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)課程中,.NET課程是學(xué)生學(xué)習(xí)開(kāi)發(fā)應(yīng)用程序項(xiàng)目的主要課程之一,在實(shí)際項(xiàng)目實(shí)現(xiàn)過(guò)程中需要與數(shù)據(jù)庫(kù)技術(shù)相結(jié)合。為了讓學(xué)生能夠加強(qiáng)對(duì).NET知識(shí)及應(yīng)用的理解,本文提出具體教學(xué)案例,將教學(xué)與實(shí)踐相結(jié)合,從案例設(shè)計(jì)需求分析、數(shù)據(jù)庫(kù)選擇與設(shè)計(jì)、案例功能設(shè)計(jì)以及最終實(shí)現(xiàn)等幾個(gè)方面進(jìn)行教學(xué)分析,為.NET課程教學(xué)提供可行性意見(jiàn)。
.NET;數(shù)據(jù)庫(kù);教學(xué)實(shí)踐;教學(xué)案例
.NET和數(shù)據(jù)庫(kù)課程本身是兩門(mén)應(yīng)用型課程,學(xué)生的學(xué)習(xí)目的不僅在于書(shū)本知識(shí)的攝取,更在于實(shí)際項(xiàng)目中的應(yīng)用。案例教學(xué)實(shí)踐方法打破了傳統(tǒng)的課堂教學(xué)模式,從實(shí)際生活出發(fā),以生動(dòng)、靈活的實(shí)際需求來(lái)促使學(xué)生進(jìn)行思考、學(xué)習(xí),逐步理解知識(shí)的內(nèi)涵,加深他們對(duì)專業(yè)課程重要性的認(rèn)識(shí),提高學(xué)生的實(shí)際應(yīng)用能力,有效避免了學(xué)生的卷面考試成績(jī)優(yōu)異而實(shí)際動(dòng)手能力差的矛盾現(xiàn)象。本文所選為小型項(xiàng)目,項(xiàng)目比較容易理解,且相關(guān)知識(shí)又不失全面性。通過(guò)對(duì)此項(xiàng)目案例的需求分析設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、功能設(shè)計(jì)以及最后的團(tuán)隊(duì)合作實(shí)現(xiàn)設(shè)計(jì)等幾個(gè)方面進(jìn)行研究,以期全面提高學(xué)生的實(shí)踐能力。
本文目標(biāo)項(xiàng)目為執(zhí)法監(jiān)察支隊(duì)查處案件管理軟件,此軟件用來(lái)管理查處案件相關(guān)信息,執(zhí)法監(jiān)察支隊(duì)查處案件信息表如下圖1所示。
圖1 執(zhí)法監(jiān)察支隊(duì)查處案件信息表
客戶需求如下:(1)案件信息的查詢、增加、修改、刪除管理功能。(2)案件信息的導(dǎo)入Excel和導(dǎo)出Excel功能。(3)案件信息統(tǒng)計(jì)功能。(4)案件信息提醒功能,提醒功能包括兩種:一種是案件決定書(shū)送達(dá)提醒(在立案日期幾個(gè)月后的某一天開(kāi)始提醒),另一種是申請(qǐng)執(zhí)行日期提醒(在決定書(shū)送達(dá)日期幾個(gè)月后的某一天開(kāi)始提醒),且提醒功能要求每天實(shí)時(shí)提醒,只要有待處理案件,每間隔60分鐘提醒一次。(5)程序功能操作容易,方便維護(hù);安裝、卸載方便。
通過(guò)對(duì)以上表格和需求功能的介紹,使學(xué)生清楚項(xiàng)目的一般性功能,考慮用戶需求,在腦海中對(duì)項(xiàng)目形成一個(gè)整體印象,鍛煉并鼓勵(lì)學(xué)生獨(dú)立進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)和功能詳細(xì)設(shè)計(jì)。
目前,在本科教學(xué)階段,學(xué)生所使用的數(shù)據(jù)庫(kù)主要有以下幾種:SQL Server、Oracle、MySql、Sqlite。對(duì)幾種數(shù)據(jù)庫(kù)進(jìn)行對(duì)比分析,結(jié)果如表1所示。
表1 幾種數(shù)據(jù)庫(kù)對(duì)比分析
本項(xiàng)目程序數(shù)據(jù)信息量比較少,主要信息表只有1個(gè),而且程序要求易維護(hù)且在任何系統(tǒng)下都可以運(yùn)行。根據(jù)幾種數(shù)據(jù)庫(kù)比較,選擇使用Sqlite數(shù)據(jù)庫(kù),既減少了數(shù)據(jù)庫(kù)安裝的麻煩,又避免了數(shù)據(jù)庫(kù)與程序之間連接信息的維護(hù),節(jié)省空間。
將學(xué)生分成5組,分別進(jìn)行各部分的詳細(xì)設(shè)計(jì)。第一組學(xué)生完成數(shù)據(jù)庫(kù)表設(shè)計(jì);第二組學(xué)生完成Excel和數(shù)據(jù)庫(kù)之間導(dǎo)入導(dǎo)出設(shè)計(jì);第三組學(xué)生完成案件信息的編輯設(shè)計(jì)(錄入、查詢、修改、刪除和統(tǒng)計(jì));第四組學(xué)生完成提醒功能設(shè)計(jì);第五組學(xué)生完成程序的一鍵式安裝與卸載設(shè)計(jì)。要求參與詳細(xì)設(shè)計(jì)的每組學(xué)生要互相溝通與合作。
3.1 數(shù)據(jù)庫(kù)表設(shè)計(jì)
關(guān)于數(shù)據(jù)庫(kù)的設(shè)計(jì),經(jīng)過(guò)討論建立一個(gè)數(shù)據(jù)庫(kù),命名為CaseRemindDataBase。數(shù)據(jù)庫(kù)中建兩個(gè)表,一個(gè)是CaseRegisterTable,用于存儲(chǔ)案件登記信息;另一個(gè)表為CaseAlarmTable,用于存儲(chǔ)案件提醒設(shè)置信息。
在數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)部分,學(xué)生學(xué)習(xí)到數(shù)據(jù)庫(kù)的使用方式,學(xué)會(huì)如何建庫(kù)、建表,以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查、備份等操作。另外,學(xué)生還學(xué)會(huì)如何對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)字段類型進(jìn)行鞏固,尤其是,經(jīng)常使用的INTEGER、INT、DOUBLE、VARCHAR、NVARCHAR、DATE、DATETIME、MONEY等數(shù)據(jù)類型。此外也促進(jìn)學(xué)生去學(xué)習(xí)主鍵、外鍵、觸發(fā)器、索引等數(shù)據(jù)庫(kù)知識(shí)。
3.2 程序功能詳細(xì)設(shè)計(jì)
3.2.1 Excel與數(shù)據(jù)庫(kù)交互
此部分主要設(shè)計(jì)3個(gè)功能,分別為新建數(shù)據(jù)庫(kù)、將數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出到Excel和將Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中,其中新建數(shù)據(jù)庫(kù)功能主要是提供新的Sqlite數(shù)據(jù)庫(kù)文件,在創(chuàng)建數(shù)據(jù)庫(kù)的同時(shí)創(chuàng)建CaseRegisterTable和CaseAlarmTable兩個(gè)表。數(shù)據(jù)庫(kù)與Excel之前的數(shù)據(jù)導(dǎo)入導(dǎo)出操作主要涉及OLEDB相關(guān)技術(shù)。
3.2.2 案件信息查詢、編輯與統(tǒng)計(jì)
案件信息的編輯主要是對(duì)案件信息記錄的添加、修改和刪除。這些操作均涉及CaseRegisterTable表中的所有字段數(shù)據(jù),而查詢功能和統(tǒng)計(jì)功能比較類似,前者是根據(jù)某些字段數(shù)據(jù)模糊查詢獲取結(jié)果,后者則是將獲取的結(jié)果以統(tǒng)計(jì)形式顯示。
3.2.3 案件提醒功能
案件提醒功能為本程序的核心管理內(nèi)容,對(duì)于決定書(shū)送達(dá)提醒和案件申請(qǐng)執(zhí)行日期的提醒都要求提醒案件的準(zhǔn)確性和實(shí)時(shí)性。因此需要在準(zhǔn)確的時(shí)間進(jìn)行查詢,主要觸發(fā)時(shí)間有開(kāi)機(jī)自動(dòng)運(yùn)行程序觸發(fā)提醒、程序運(yùn)行后每隔60分鐘提醒一次、如果無(wú)需提醒案件不進(jìn)行提醒、可以通過(guò)設(shè)置修改今天一直提醒和今天不再提醒。
3.2.4 一鍵式安裝與卸載
一鍵式安裝與卸載考驗(yàn)的是學(xué)生對(duì)應(yīng)用程序和操作系統(tǒng)的了解程度,讓學(xué)生掌握:(1)需要設(shè)計(jì)好哪些程序是確保項(xiàng)目正常運(yùn)行的必要條件;(2)卸載程序時(shí)需要弄清楚哪些數(shù)據(jù)和安裝程序必須清除。并在此基礎(chǔ)上設(shè)計(jì)DOS命令,使用DOS命令修改注冊(cè)表等操作。
項(xiàng)目詳細(xì)設(shè)計(jì)部分完畢后,學(xué)生對(duì)整體程序有了初步了解。每組派出一名代表講述本組實(shí)現(xiàn)部分模塊的內(nèi)容及設(shè)計(jì)思想,使全體同學(xué)對(duì)整體程序有了詳細(xì)的掌握,這時(shí)教師再有針對(duì)性地提出可行性意見(jiàn)并對(duì)不足之處進(jìn)行補(bǔ)充。
4.1 主頁(yè)面
主頁(yè)面如圖2所示
圖2 主頁(yè)面
4.2 .NET連接Sqlite數(shù)據(jù)庫(kù)
string connStr =
SQLiteConnectionString.GetConnectionString(System.IO.Directory.GetCurrentDirectory() +"CaseRemindDataBase.db");
SQLiteConnection conn = new SQLiteConnection(connStr)
4.3 .NET操作EXCEL連接
tring fileType = System.IO.Path.GetExtension(fileUrl);
string cmdText;
if (fileType.Equals(".xls"))
{
cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;IMEX=1;";
}
else
{
cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties=,Excel 12.0; HDR=Yes; IMEX=1’";
}
OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileUrl));
4.4 提醒程序提醒時(shí)間間隔設(shè)置
timer.Enabled = true;
timer.Interval = GetAlarmEveryTime() * 60000;//執(zhí)行間隔時(shí)間,單位為毫秒
timer.Start();
timer.SynchronizingObject = this;
timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Elapsed);
通過(guò)此次實(shí)際案例教學(xué)可以發(fā)現(xiàn),學(xué)生在學(xué)習(xí)編程語(yǔ)言和數(shù)據(jù)庫(kù)知識(shí)時(shí)存在以下問(wèn)題:(1)對(duì)數(shù)據(jù)庫(kù)原理基礎(chǔ)知識(shí)掌握牢固,但是對(duì)數(shù)據(jù)庫(kù)操作不熟悉,對(duì)實(shí)際應(yīng)用中的主鍵、外鍵、索引等了解不夠透徹。(2)通過(guò)SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行增、刪、改、查等活動(dòng)比較了解,但對(duì)如何使用.NET編程語(yǔ)言,連接數(shù)據(jù)庫(kù)并操作數(shù)據(jù)庫(kù)比較模糊。(3)因?yàn)榘讣嵝堰壿嬌詮?fù)雜模塊,初次設(shè)計(jì)不能較好地安排程序邏輯關(guān)系。(4)在數(shù)據(jù)庫(kù)與Excel導(dǎo)入導(dǎo)出實(shí)現(xiàn)過(guò)程中遇到許多技術(shù)難點(diǎn),獨(dú)自調(diào)試程序的能力有待提高。(5)對(duì)程序的一鍵式安裝與卸載的設(shè)計(jì)毫無(wú)頭緒,需要指導(dǎo)教師的詳細(xì)引導(dǎo)。
通過(guò)本次實(shí)際案例教學(xué)發(fā)現(xiàn),學(xué)生的實(shí)際操作能力有待提高。在教學(xué)過(guò)程中應(yīng)提出更多的有針對(duì)性的教學(xué)案例,使學(xué)生在實(shí)踐中掌握理論知識(shí),加強(qiáng)學(xué)生對(duì)應(yīng)用技術(shù)的理解,為其今后走上工作崗位打下堅(jiān)實(shí)的基礎(chǔ)。
[1]李偉.SQLite結(jié)合.net開(kāi)發(fā)多媒體物流信息系統(tǒng)教學(xué)網(wǎng)站[J].科學(xué)與技術(shù),2014(2):51.
[2]王穎,王亞艷.基于案例的ASP_NET程序設(shè)計(jì)教學(xué)實(shí)踐[J].大學(xué)教育,2013(2):33-34.
[3]袁芳.教學(xué)做一體化ASP_NET課程教學(xué)改革與實(shí)踐[J].計(jì)算機(jī)教育,2014,35(11):126-128.
[4]張棟冰.項(xiàng)目驅(qū)動(dòng)教學(xué)法在ASP_NET課程中的實(shí)踐[J].電腦知識(shí)與技術(shù),2015,11(11):146-147.
[5]胡華.小型超市管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2009.
[6]劉杰.投資項(xiàng)目經(jīng)濟(jì)評(píng)價(jià)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[D].北京:華北電力大學(xué),2007.
2015-06-05
白文秀(1976-),男,吉林四平人,吉林師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院講師,碩士,從事軟件工程研究。
TP311;G642
A
2095-7602(2015)12-0094-04
長(zhǎng)春師范大學(xué)學(xué)報(bào)2015年12期