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