下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于 asp.net 的學生網上選課系統(tǒng)的設計與實現(xiàn)摘要: 隨著在校大學生人數(shù)的不斷增加,教務系統(tǒng)的數(shù)據量也不斷的上漲。針對學生選課這一環(huán)節(jié),本系統(tǒng)從學生網上自主選課以及教師的課程發(fā)布兩個大方面進行了設計,基本實現(xiàn)了學生的在線信息查詢、 選課功能以及教師對課程信息發(fā)布的管理等功能。本程序由 sql server 數(shù)據庫支持, 通過使用 asp 語言實現(xiàn)。本文對學生網上選課系統(tǒng)進行了系統(tǒng)分析,詳細講述了系統(tǒng)功能,并對數(shù)據庫設計等方面加以說明。關鍵詞 :選課;課程信息發(fā)布;mysql ; asp1 緒論1.1 課題背景隨著教學體制的不斷改革,尤其是學分制、選課制的展開和深入,教務日常管理工作日趨繁
2、重、復雜。如何把教務工作信息化,模塊化,便捷化是現(xiàn)代大學發(fā)展的重點,所以迫切需要研制開發(fā)一種綜合教務管理軟件。在數(shù)字校園理論逐步應用的過程中,各校一方面不斷投資購建各種硬件、系統(tǒng)軟件和網絡,另一方面也不斷開發(fā)實施了各類教學、科研、辦公管理等應用系統(tǒng), 形成了一定規(guī)模的信息化建設體系。但是,由于整體信息化程度相對落后, 經費短缺, 理論體系不健全等原因, 國內各校教務管理系統(tǒng)在機構設置、服務范圍、服務質量及人員要求上與國外高校相比都有一定的差距。目前國家的教育體制也正處在不斷改革、創(chuàng)新的階段,教育部門充分吸取國外優(yōu)秀的教學模式, 結合國內多年的辦學經驗,逐步探索出適合中國特色的教學形式,國家教育
3、部面向各級各類學校開展了全面學分制改革。隨著無紙化辦公的一步步實現(xiàn),信息的自動處理以及網絡式的信息交互方式越來越被人們認可和應用。讓計算機來管理學生的信息是現(xiàn)在各個 高校都在積極進行的工作之一,也是高校教學管理工作的重要內容之一。網上選課與傳統(tǒng)的選課方式相比更加節(jié)約資源,同時,隨著學生選課自主權的增加, 網上選課有效的避免了 “走關系” 等不良現(xiàn)象, 使教學更加透明, 為進一步實現(xiàn)完善的計算機教務管理系統(tǒng)和全校信息系統(tǒng)打下良好的基礎。1.2 所用軟件的基本知識1.2.1 mysqlmysql 有關數(shù)據庫方面的操作。 注意:必須首先登錄到 mysql 中,以下操作都是在 mysql的提示符下進行
4、的, 而且每個命令以分號結束。操作技巧:如果你打命令時,回車后發(fā)現(xiàn)忘記加分號, 你無須重打一遍命令, 只要打個分號回車就可以了。也就是說你可以把一個完整的命令分成幾行來打,完后用分號作結束標志就ok ?;久?:列出數(shù)據庫show databases;選擇數(shù)據庫use 庫名;列出表格show tables;顯示數(shù)據表的結構describe 表名 ;建庫create database 庫名;建表use 庫名 ;create table 表名( 字段設定列表 ) ; 刪庫和刪表drop database 庫名 ;drop table 表名 ;將表中記錄清空delete from表名 ;顯示表中的
5、記錄select * from表名 ;將文本數(shù)據轉到數(shù)據庫中l(wèi)oad data local infile " 文件名 " into table表名 ;(注意 : 文本數(shù)據應符合的格式:字段數(shù)據之間用tab 鍵隔開)1.2.2 asp( active server page )active server pages (asp) 是服務器端腳本編寫環(huán)境,是由 server 端腳本、 對象以及組件拓展過的標準主頁使用它可以創(chuàng)建和運行動態(tài)、交互的web 頁和基于 web 的功能強大的應用程序 asp 采用的工作模型是典型的b/s 過程:()一個用戶在瀏覽器的網址欄中添入active
6、server pages 文件名稱,并回車觸發(fā)這個active server pages 的申請。()瀏覽器將這個active server pages 的求發(fā)送給iis() web server 接收這個申請要求并由于其 asp 的后綴意識到這是個 active server pag 的對象來實現(xiàn)服務器與客戶端間的交互;可擴充服務器端功能 asp 與瀏覽器無關, asp 可以將運行結果一 html 的格式傳送到客戶端瀏覽器,因而可以使用于各種瀏覽器。2 系統(tǒng)分析2.1 可行性分析可行性分析是指在當前組織內外的具體條件下,系統(tǒng)開發(fā)工作必須具備資源和條件,看其是否滿足系統(tǒng)目標的要求。在系統(tǒng)開發(fā)過
7、程中進行可行性分析,對于保證資源的合理使用,避免浪費和一些不必要的失敗,都是十分重要的。()目標和方案的可行性:如果采用人工操作的方式,不僅操作不方便,耗費人力、物力、 財力,而且還容易出現(xiàn)錯誤。所以當前迫切需要一個計算機化的管理信息系統(tǒng)。有了這個系統(tǒng),就能用較少的人力去管理完成較大的工作量,而各種管理的效率也會大大提高。開發(fā)這個系統(tǒng),能更好地滿足學校要求,使學校的各種信息管理實現(xiàn)無紙化,高效化。()技術方面的可行性:本系統(tǒng)是用asp 結合 mysql 數(shù)據庫來開發(fā)的一個信息管理軟件。 asp 在數(shù)據庫方面的特長顯得尤為突出:適用于多種數(shù)據庫結構,通過訪問各種數(shù)據庫通用組件 , 結合客戶端能夠
8、創(chuàng)建出完美漂亮且高效的各種軟件系統(tǒng)。()經濟方面的可行性:系統(tǒng)結構采用當前流行的b/s 結構,對客戶的配置要求低, 客戶端只需要有瀏覽器可以上網就可以登錄服務器進行各種信息的管理。而服務器端也不需要太高的配置, 只要有可以運行 asp 程序的解釋器, 可以說整個系統(tǒng)是以最少的投入完成最好的功能,這就保證了系統(tǒng)的經濟可行性。() 管理方面的可行性: 作為學校教務信息管理系統(tǒng)之一的選課系統(tǒng), 對它的管理也是很方便的, 只需要先將系統(tǒng)配置運行起來, 然后分配好系統(tǒng)的三個主要角色, 就可以投入實際使用,作為系統(tǒng)使用者如管理員,教師和學生基本都是會知道如何進行電腦操作的。根據以上幾方面的可行性分析,可以
9、得出結論:學生網上選課系統(tǒng)的開發(fā)可行。2.2 功能分析本系統(tǒng)的使用是面向大學院校, 系統(tǒng)的使用對象包括系統(tǒng)管理員,教師和學生三種身份, 系統(tǒng)管理員登錄系統(tǒng)后可以管理學生的信息,管理教師的信息, 管理每學期各個班級的必修課程信息, 各個專業(yè)每個學期的選修課程信息,可以為這些課程進行排課;而教師用戶登錄系統(tǒng)后可以查詢任意學生的信息,可以查詢自己的授課信息,可以登記自己所教學生的成績信息 , 可以修改自己的登錄密碼和個人信息;學生用戶登錄系統(tǒng)后可以查詢任一學期自己的成績信息,如果系統(tǒng)開放了選課功能, 可以在指定的日期內登錄系統(tǒng)后選修該學期的選修課, 可以生成某個學期的課程上課信息表,可以修改自己的個
10、人信息和登錄密碼。本系統(tǒng)一共有4 個主模塊(身份驗證學生管理教師管理管理員管理),其中每個管理部分又包含了幾個子模快,主要功能可概括為為瀏覽、查詢、修改、添加。2.3 系統(tǒng)程序流程圖登錄界面用戶權限學生教師管理員登錄驗證主界面操作結束圖 31系統(tǒng)程序流程圖3 系統(tǒng)總體設計3.1 系統(tǒng)結構設計3.1.1 主要功能本系統(tǒng)主要功能。()身份驗證:通過登錄才可進入選課系統(tǒng),登錄信息提交后檢驗登錄者的身份是否合法,合法,則轉入對應的操作界面。在本系統(tǒng)中,只有三種身份:學生、教師、管理員。()信息瀏覽:信息瀏覽包括已選課程瀏覽、已發(fā)布課程信息瀏覽。已選課程瀏覽是為學生提供的查看自己已經選擇的課程信息以及刪
11、除選擇課程。已發(fā)布課程信息瀏覽用于各代課老師查詢自己已經發(fā)布的課程信息,主要用于瀏覽、 核對。()信息查詢:信息查詢包括教師個人信息查詢、課程查詢、選課查詢。課程查詢即查詢該課程的相關介紹, 包括課程內容、 開課地點等內容。 教師個人信息是查看及修改對應的老師個人信息。通過選課查詢可以查看要選擇的課程情況。()信息修改:信息修改包括密碼的修改,學生信息的修改,教師信息的修改。( 5)信息添加:信息添加包括學生選課、教師課程發(fā)布、管理員。學生選課即通過選擇選修的課程,添加到學生已選課程中,完成選課任務。教師課程發(fā)布即教師添加新的課程信息,新信息發(fā)布后,學生可看到發(fā)布的信息。管理員添加學生、教師、
12、課程的基本信息。學生網上選課系統(tǒng)密碼修改密碼修改3.1.2 系統(tǒng)模塊功能圖學教管登生師理錄管管員功理理管能功功理能能功能學必選已教發(fā)已教學課登生修修選師布發(fā)師生程錄信課課課信課課信信信息程程程息程程息息息圖 3 2系統(tǒng)功能圖3.2 數(shù)據庫設計根據系統(tǒng)功能設計的要求以及功能模塊的劃分,可以列出以下主要數(shù)據項和數(shù)據庫,主要分為 6 個表: 表 course 、表 student 、表 teacher 、表 admin、表 selected 、表 published表 3.1課程信息表( course)名稱字段名稱類別主鍵非空課程編碼cidintyesyes教師編號tidvarcharnono課程名
13、稱cnamevarcharnono課程類別ctypevarcharnono供選學院ccollegevarcharnono供選專業(yè)cprofessionalvarcharnono學分ccreditvarcharnono最多人數(shù)cmaxvarcharnono上課地點croomvarcharnono課程介紹cintroductiontextnono表 3.2學生信息表( student )名稱字段名稱類別主鍵非空學號sidvarcharyesyes姓名snamevarcharnono性別ssexcharnono所屬學院scollegevarcharnono所在專業(yè)sprofessionalvarch
14、arnono班級sclassvarcharnono密碼skeyvarcharnono表 3.3教師信息表( teacher )名稱字段名稱類別主鍵非空身份證號tidvarcharyesyes姓名tnamevarcharnono性別tsexcharnono所屬學院tcollegevarcharnono所屬專業(yè)tprofessionalvarcharnono密碼tkeyvarcharnono表 3.4管理員信息表( admin)名稱登錄號密碼字段名稱aid akey表 3.5類別varchar varchar學生選課信息表(主鍵yes noselected)非空yes no名稱學號課程編碼字段名稱
15、sid cid類別varchar int主鍵no no非空no no表 3.6教師發(fā)布課程信息表(published)名稱字段名稱類別主鍵非空教師證件號課程編碼tidcidvarcharintnononono4 系統(tǒng)詳細設計4.1 身份驗證4.1.1 登錄功能在登錄頁面對應的地方輸入用戶名(學號或身份證號或其它有效證件),密碼;確認后登 錄 。 在 提 交 后 , 首 先 通 過 學 號 身 份 證 號 或 其 它 有 效 證 件 對 數(shù) 據 庫 中 的student/teacher/admin表進行檢索,若檢索到的記錄集為空,則說明學號/ 身份證號或其它有效證件錯誤, 從而轉到相應的出錯處理
16、程序,若記錄集不為空,再進行密碼判斷,檢查密碼是否相等,不相等,作出錯處理,相等則轉入學生老師管理員登錄成功的操作頁面,并將姓名,密碼,學號身份證號或其它有效證件以session 對象保存起來。出錯及系統(tǒng)提示如下:()學號或身份證號或其它有效證件錯誤,系統(tǒng)這時會提醒“沒有該學生!”或“沒有該老師!”或“沒有該系統(tǒng)管理員! ”;()密碼錯誤,系統(tǒng)提示“密碼錯誤”。4.1.2 密碼修改功能密碼的修改的前提是用戶成功登錄,選擇密碼修改后, 按照頁面上的提示, 在相應的文本框中輸入新密碼(兩次),確定后提交。轉入執(zhí)行的asp 文件后,判斷兩次輸入的新密碼是否相等,若不等,出錯;否則,用新密碼代替舊密碼
17、,更新數(shù)據庫表student/teacher 中的“密碼”字段。本系統(tǒng)密碼采用md5加密。出錯及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼不相符合”。4.2 學生信息管理功能4.2.1 選課信息查詢及選課登錄成功后,點擊菜單“選修課程”,確定后進入瀏覽頁面。進入頁面后,可以對頁面上表格內帶鏈接的信息進行查詢,例如點擊 “教師” 可查詢教師信息。 要選擇課程, 點擊“選修該課程”后,該課程就會出現(xiàn)在“已選課程”的表格中。若已選過該課程,系統(tǒng)提示“您已經選了該課程!” 。4.2.2 必修課程信息查詢點擊菜單“必修課程” ,可看到學生所在專業(yè)所開設的必修課程。其中查詢數(shù)據庫所需要的參數(shù)是學
18、生的專業(yè)信息傳遞來的。專業(yè)信息的獲得是通過session(sid)對數(shù)據表 student 查詢得到的。進入頁面后,可以對頁面上表格內帶鏈接的信息進行查詢,例如點擊“課程名稱”可查詢課程信息。4.2.3 已選課程信息查詢點擊菜單“已選課程” ,在選課信息瀏覽頁面中可以查詢已經選的課程。課程信息的查詢是通過條件對數(shù)據表course,表 selected,表 teacher 等進行查詢,將符合條件的信息列出。想要退選課程,點擊“取消該課程”按鈕即可。4.2.4 學生個人信息點擊菜單“學生信息” ,進入選課信息瀏覽頁面查詢即可。學生信息的修改首先是通過條件對數(shù)據表 student 進行查詢,符合條件
19、后在文本框中輸入完整信息后進行覆蓋寫入,就可以進行信息修改。4.2.5 密碼修改點擊菜單“學生信息” ,進入選課信息瀏覽頁面。按照頁面上的提示,在相應的文本框中輸入新密碼(兩次) ,確定后提交。轉入執(zhí)行的asp 文件后,判斷兩次輸入的新密碼是否相等,若不等,出錯;否則,用新密碼代替舊密碼,更新數(shù)據庫表student 中的“ skey”字段。出錯及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼不相符合”。4.3 教師課程信息管理功能4.3.1 課程信息發(fā)布登錄成功后,點擊菜單“發(fā)布課程”,進入選課信息瀏覽頁面。如果想要單獨查看某專業(yè)該教師可發(fā)布課程,在查詢條件“課程專業(yè)”對應的文本框內輸入
20、查詢信息(不輸入信息時,表中顯示該教師可發(fā)布課程的所有課程信息),點擊“查詢”按鈕,即可查詢。若要發(fā)布課程,按要求輸入完整信息(課程名稱與課程專業(yè)不能改變),點擊“開設課程”按鈕。若輸入信息不完整,系統(tǒng)會提示“請輸入, !”;當發(fā)布的課程的記錄已經存在時,系統(tǒng)提示“您已經發(fā)布了該課程! ”。當輸入的課程名稱或課程專業(yè)有誤,系統(tǒng)提示“發(fā)布失敗! ”。4.3.2 對已發(fā)布信息查詢對數(shù)據表 course,表 published 等進行檢索,將其中符合條件的信息全部輸出;查詢需要的參數(shù)是由 session 對象獲得的身份證號來確定的,由這二者確定出的即是該老師所發(fā)布過的課程信息。想要取消發(fā)布課程,點擊
21、“取消發(fā)布課程”按鈕即可。4.3.3 教師個人信息點擊菜單“教師信息” ,進入選課信息瀏覽頁面查詢即可。教師信息的修改首先是通過條件對數(shù)據表 teacher 進行查詢,符合條件后在文本框中輸入完整信息后進行覆蓋寫入,就可以進行信息修改。4.3.4 密碼修改點擊菜單“教師信息” ,進入選課信息瀏覽頁面。按照頁面上的提示,在相應的文本框中輸入新密碼(兩次) ,確定后提交。轉入執(zhí)行的asp 文件后,判斷兩次輸入的新密碼是否相等,若不等,出錯;否則,用新密碼代替舊密碼,更新數(shù)據庫表teacher 中的“ tkey ”字段。出錯及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼不相符合”。4.4 系
22、統(tǒng)管理員信息管理功能4.4.1 管理教師功能教師信息的添加、修改、刪除、查詢由管理員完成,教師無權使用。()添加:對數(shù)據表“ teacher”進行添加操作,生成新記錄。在管理員登錄成功后, 選擇“教師信息”即進入教師信息添加頁面,輸入要添加的教師身份證號、教師姓名等教師信息后(初始密碼admin),點擊添加按鈕即可。出錯及系統(tǒng)提示:輸入的教師的身份證號已存在,系統(tǒng)則提示“添加失敗, 請檢查教師證件號是否已經存在!”。()修改:在管理員登錄成功后,選擇“教師信息”即進入教師信息頁面。對數(shù)據庫中的表“ teacher”查詢,在網頁相應的的地方顯示所要的信息。列出教師信息表后,在表中查詢要修改的教師
23、身份證號后,點擊“修改” 按鈕, 修改所要修改的教師的信息,點擊“更新”按鈕,若不修改,則點擊“取消”按鈕。()刪除:在管理員登錄成功后,選擇“教師信息”即進入教師信息頁面。查詢要刪除的教師身份證號,點擊“刪除”按鈕進行刪除。()查詢:在教師信息頁面,輸入要查詢專業(yè),點擊“查詢”按鈕即可查詢該專業(yè)的教師情況。4.4.2 管理學生功能學生信息的添加、修改、刪除、查詢功能與管理教師信息基本相同,不再贅述。4.4.3 管理課程功能課程信息的添加、修改、刪除查詢功能與管理教師信息基本相同,不再贅述。5 設計過程中的問題及解決方法5.1 數(shù)據庫的連接mysql與 sql server 的連接方式大致相同
24、, 當 mysql與 vs連接時,需要組件mysql-connector-net , 通過查找及實踐,完成了數(shù)據庫的建立和連接。如圖5 1:圖 51 mysql 數(shù)據庫的連接數(shù)據庫連接操作類主要代碼:/數(shù)據庫連接字符串privateconststringconnstring="server=localhost;database=choosecourse;uid=root;pwd=sa"/返回 select 得到的數(shù)據集public static datasetexecuteselectsql( string sqlselect )mysqlconnection conn =
25、 new mysqlconnection(connstring); mysqldataadaptersda = new mysqldataadapter(sqlselect,conn); dataset ds = new dataset();trysda.fill(ds); catch(mysqlexception e)throw new exception(e.message); return ds;/執(zhí)行 insert, update, delete 等語句,返回改變的行數(shù)public static intexecutesql( string sql )int rows = -1;mysq
26、lconnection conn = new mysqlconnection(connstring); mysqlcommandcmd = new mysqlcommand(sql,conn);conn.open();tryrows = cmd.executenonquery();catch(mysqlexception e)throw new exception(e.message);cmd.dispose(); conn.close();5.2 參數(shù)的傳遞finallyreturn rows;在模塊的建立時, 很多時候發(fā)現(xiàn)功能不能正常運行,在檢查完程序語句的結構之后,發(fā)現(xiàn)并沒有錯誤, 于是
27、在檢查頁面與頁面交互時發(fā)現(xiàn)了問題,很多地方傳遞的參數(shù)并沒有真正 的執(zhí)行,還有些地方沒有進行參數(shù)的設置,才導致了程序的錯誤。5.3 公共數(shù)據由于一開始沒有使用session 對象,致使很多功能無法實現(xiàn),在學習了 session 的相關內容后才解決了一些具體的問題,包括網頁間的參數(shù)的傳遞,公共信息的保存及提取等。6 系統(tǒng)的實現(xiàn)6.1 登錄模塊6.1.1 登錄模塊簡介登錄模塊在本系統(tǒng)中用于區(qū)別學生、教師、管理員。出于保密性和方便管理等方面的考慮,不同身份在登錄本系統(tǒng)后有不同權限。例如:學生登錄系統(tǒng)后可查詢及選課,教師登錄系統(tǒng)后可發(fā)布課程。 管理員登錄系統(tǒng)后可添加教師、學生及課程信息。通過用戶權限,
28、選擇正確身份,然后輸入用戶名(學號或身份證號或其它有效證件)、密碼,登錄信息提交后檢 驗登錄者的身份是否合法,合法,則轉入對應的操作界面。(初始密碼均為admin,管理員登錄用戶名 admin )登錄界面選擇用戶類型輸入用戶名密碼登錄驗證y操作主界面n圖 6 1 登錄模塊流程圖6.1.2 登錄模塊關鍵代碼主要代碼如下:protected void btnlogin_click(object sender, eventargs e)/登錄代碼int type = int32.parse(ddllogin.selecteditem.value);/用戶類型選擇分三種,用switch (type)
29、來區(qū)分string user = txtuser.text.trim();/用戶證件號,文本框內容賦值給user string inputkey = txtkey.text.trim();/用戶密碼,文本框內容賦值給inputkey string key = ""string sql = "" dataset ds; switch (type)/ 選擇學生,即 type值為 1,執(zhí)行 case 1;選擇教師,即 type值為 2,執(zhí)行 case 2;選擇系統(tǒng)管理員,即type值為 3,執(zhí)行 case 3 case 1:/驗證學生身份代碼sql = &qu
30、ot;select skey from student where sid like '" + user + "'"/從表 student中查詢學號 sid為輸入證件號 user 的學生密碼ds = db.executeselectsql(sql);/執(zhí)行 select類型的 sql語句, 返回 select得到的數(shù)據集if (ds != null && ds.tables.count > 0 && ds.tables0.rows.count > 0&& !ds.tables0.rows0
31、.isnull(0)/判斷 select得到的數(shù)據集是否為空,若為空,執(zhí)行 elsekey = ds.tables0.rows00.tostring();/將查詢到的密碼賦值給 key if (myutility.md5(inputkey) = key)/輸入密碼經過 md5 加密,并與key相比較/ 相等,便可成功登陸學生選課管理主頁面session"id" = user;/內置對象 session記錄用戶登錄學號session"type" = type; /內置對象 session記錄用戶登錄類型response.redirect("stu
32、dentmain.aspx");/ 進入學生選課管理主頁面else/密碼錯誤response.redirect("error.aspx?code=" +errorinfo.err_keyerror.tostring();/系統(tǒng)提示: 密碼錯誤else/不存在該學生response.redirect("error.aspx?code=" + errorinfo.err_nostudent.tostring();/系統(tǒng)提示:不存在該學生break;case 2:/驗證教師身份代碼 /與驗證學生身份代碼類似break;case 3:/驗證管理員身份代
33、碼 /與驗證學生身份代碼類似break;6.1.3 登錄模塊截圖圖 62 登錄頁面圖 63 學生登錄錯誤頁面6.2 學生選課模塊6.2.1 學生選課模塊簡介學生選課模塊是系統(tǒng)主要模塊之一,主要用于學生的網上選課, 不同專業(yè)學生通過登錄選課系統(tǒng),選擇本專業(yè)的課程,完成選課任務。菜單:學生信息|必修課程 |選修課程 |已選課程,包括選課信息查詢及選課、 必修課程信息查詢、 已選課程信息查詢、 學生個人信息修改、密碼修改等。6.2.2 學生選課模塊關鍵代碼學生個人信息:protected void page_load(object sender, eventargs e)/顯示學生信息代碼if (!
34、ispostback) / 表示第一次訪問頁面時要執(zhí)行的程序,有點像初始化頁面, 當你點擊了當前頁面的一些按鈕后,將不會再執(zhí)行這些程序string sql = "select * from student where sid like '" + session"id".tostring()+ "'"/ 從表 student查詢學生的所有信息,條件是:學號sid為內置對象session記錄的用戶登錄學號dataset ds = db.executeselectsql(sql); /執(zhí)行 select 類型的 sql 語句
35、,返回select得到的數(shù)據集if (ds != null && ds.tables.count > 0 && ds.tables0.rows.count > 0)/判斷select得到的數(shù)據集是否為空lbsid.text = session"id".tostring();/將session記錄的用戶登錄學號在label控件 lbsid 上顯示出來txtsname.text = ds.tables0.rows0"sname".tostring();/在textbox 控件 txtsname 中顯示 select
36、得到的學生姓名if (ds.tables0.rows0"ssex".tostring() = "女")ddlssex.selectedindex = 0;elseddlssex.selectedindex = 1;/在 dropdownlist 控件 ddlssex中顯示 select得到的學生性別txtscollege.text = ds.tables0.rows0"scollege".tostring();/在textbox 控件 txtscollege 中顯示 select得到的學生學院txtsprofessional.text
37、 =ds.tables0.rows0"sprofessional".tostring();/在textbox 控件txtsprofessional中顯示 select得到的學生專業(yè)txtsclass.text = ds.tables0.rows0"sclass".tostring();/在textbox 控件 txtsclass中顯示 select得到的學生班級密碼修改:protected void btnupdatekey_click(object sender, eventargs e)/ 密碼修改代碼if (txtkey.text.trim() !
38、= txtkeyok.text.trim()/判斷輸入的新密碼與密碼確認輸入的密碼是否相等,若不相等,執(zhí)行if 語句;相等,不執(zhí)行 if 語句response.write(myutility.alert("兩次輸入密碼不相符合");/ 系統(tǒng)提示:兩次輸入密碼不相符合return; /返回密碼修改頁面string sql = "update student set skey = '" + myutility.md5(txtkey.text.trim() +"' where sid = '" + session&q
39、uot;id" + "'"/將表 studen中學號 sid為內置對象 session記錄的用戶登錄學號的學生密碼更新為修改的密碼if (db.executesql(sql) = 1) / 判斷執(zhí)行 update語句 , 改變的行數(shù)是否為 1(即表studen中只有該登錄學生的那一行密碼信息改變),若為 1,則修改成功;否則,則修改失敗response.write(myutility.alert("修改成功! ");elseresponse.write(myutility.alert("修改失??! ");學生信息修改
40、:protected void btnupdateinfo_click(object sender, eventargs e)/ 學生信息修改代碼string sql = "update student set sname = '" + txtsname.text.trim() + "'" + ",ssex = '" + ddlssex.selecteditem.text + "'" +",scollege = '" + txtscollege.text.
41、trim() + "'" + ",sprofessional= '" + txtsprofessional.text.trim() + "'" + ",sclass = '" + txtsclass.text.trim() + "'" +" where sid like '" + session"id".tostring() + "'"/將表 studen中學號 sid為內置對象
42、session記錄的用戶登錄學號的學生信息更新為修改后的信息if (db.executesql(sql) = 1)/ 判斷執(zhí)行 update語句 , 改變的行數(shù)是否為 1(即表studen中只有該登錄學生的那一行信息改變),若為 1,則修改成功;否則, 則修改失敗response.write(myutility.alert("修改成功! ");elseresponse.write(myutility.alert("修改失??! ");選課:protected void page_load(object sender, eventargs e)/可選課程顯示
43、代碼if ( ! ispostback )string sql = "selectcourse.cid,course.cname,course.cprofessional, teacher.tname, teacher.tid,course.ccredit, course.cmax, course.croom from teacher inner join course on teacher.tid =course.tid inner join published on course.cid = published.cid inner join student on student.
44、sprofessional = course.cprofessional where ctype like ' 選修 ' and student.sid = '" + session"id" + "'"/ 從表teacher、表course中查詢要在 gridview 控件表格中顯示的內容,要求課程類型ctype 為選修, 課程編號 cid 為教師已發(fā)布課程表 published中已存在課程編號,教師編號 tid 為課程信息表 course中已存在的教師編號,課程專業(yè)cprofessional 為session記
45、錄的用戶登錄學號的學生的專業(yè)(即gridview 控件表格中顯示的內容為教師已發(fā)布的本專業(yè)的選修課程)dataset ds = db.executeselectsql(sql); if (ds != null && ds.tables.count > 0)gvxxcourse.datasource = ds.tables0; gvxxcourse.databind();/ 將查詢結果綁定到gridview 控件gvxxcourse (選修課程表)中for (int i = 0; i < ds.tables0.rows.count; i+)/循環(huán)條件: 查詢所得的表(
46、選修課程表)的數(shù)據總行數(shù)sql = "select count(*) from selected where cid = " + ds.tables0.rowsi"cid".tostring();/查詢表 selected中的記錄數(shù),條件:課程編號 cid 等于gridview 控件 gvxxcourse 中第 i+1 行的課程編號dataset ds1 = db.executeselectsql(sql); if (ds1 != null && ds1.tables.count > 0 &&ds1.tables0.
47、rows.count > 0)gvxxcourse.rowsi.cells6.text = ds1.tables0.rows00.tostring();/將從表 selected中返回的記錄數(shù)(即已選該課程人數(shù))在gvxxcourse 中第 i+1 行、第 7列(即已選人數(shù)那一列)顯示protected void gvxxcourse_rowcommand(object sender, gridviewcommandeventargs e)/ 判斷是否已選課代碼if (e.commandname = "select") / 控件的 commandname 屬性gvxx
48、course.datakeynames = new string "cid" ;/主鍵int index = convert.toint32(e.commandargument);string cid = gvxxcourse.datakeysindex.values0.tostring();/獲取要選擇的課程的課程編號cidstring sql = "select * from selected where cid = " + cid + " and sid like '"+session"id".tos
49、tring() + "'"/從表 selected中查詢登錄學生的學號及選擇的課程的課程編號db.executeselectsql(sql);dataset ds = db.executeselectsql(sql); bool flag = false; / 選修課程判斷標志if (ds != null && ds.tables.count > 0 && ds.tables0.rows.count > 0) flag = true;if (flag)/ 已選修過else/未選修過response.write(myutil
50、ity.alert("您已經選了該課程了!"); return;selectcourse(int32.parse(cid); / 選課private void selectcourse(int cid)/ 選課代碼int max=0,current=0;string sql = "select cmax from course where cid = "+cid;/ 查詢所選課程允許的最大人數(shù)dataset ds = db.executeselectsql(sql);if ( ds != null && ds.tables.count &
51、gt; 0 && ds.tables0.rows.count > 0 )max = int32.parse(ds.tables0.rows00.tostring();/最大人數(shù)賦值給 maxelsereturn;值給 currentsql = "select count(*) from selected where cid = "+cid; /查詢表 selected中所選擇課程的課程編號的記錄數(shù)(即已選該課程人數(shù))dataset ds1 = db.executeselectsql(sql);if ( ds1 != null && ds
52、1.tables.count > 0 && ds1.tables0.rows.count > 0 )current = int32.parse(ds1.tables0.rows00.tostring();/將記錄數(shù)賦elsereturn;if ( current > max )/判斷已選該課程人數(shù)是否超出允許的最大人數(shù)/ 超出response.write(myutility.alert("人數(shù)已滿! "); return;sql = "insert into selected values('" + sessio
53、n"id".tostring() + "'," + cid + ")" /符合條件,將登錄學生學號及所選課程插入表selected中if ( db.executesql(sql) = 1 )/判斷執(zhí)行 insert語句 , 改變的行數(shù)是否為1(即表selected中只有該登錄學生的所選的課程的課程編號那一行信息改變),若為 1, 則選課成功;否則,則選課失敗response.write(myutility.alert("選課成功 ");sql = "select count(*) from sel
54、ected where cid = " + cid; dataset ds2 = db.executeselectsql(sql);if (ds2 != null && ds2.tables.count > 0 && ds2.tables0.rows.count > 0) gvxxcourse.rowsindex.cells6.text =elseds2.tables0.rows00.tostring();/更新已選人數(shù)response.write(myutility.alert("選課失敗 ");6.2.3 學生選課模塊截圖圖 64 學生信息修改頁面圖 6 5 選課頁面圖 6 6 課程信息查詢頁面6.3 教師課程管理模塊6.3.1 教師課程管理模塊簡介教師課程管理模塊主要用于教師發(fā)布新的課程信息, 新信息發(fā)布后, 不同專業(yè)的學生可看到發(fā)布的關于本專業(yè)的課程信息。 菜單: 教師信息 | 發(fā)布課程 | 已發(fā)課程, 包括課程信息發(fā)布、對已發(fā)布信息查詢、教師個人信息、密碼修改等。6.3.2 教師課程管理模塊關鍵代碼開設課程:protected void page_load(object sender, eventarg
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品加工企業(yè)供應鏈管理合同
- 新材料推廣應用合同
- 物聯(lián)網硬件設備采購合同
- 企業(yè)財務報表編制咨詢合同
- 2024年智能建筑設計合作投資合同
- 2025年箱包皮具配件項目可行性研究報告
- 大頭探燈行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 環(huán)保型電機生產線項目可行性研究報告申請立項
- 2020-2025年中國新能源汽車電機控制器市場運行態(tài)勢及行業(yè)發(fā)展前景預測報告
- 2025年中國拱型彩鋼屋面板行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2024年西藏中考物理模擬試題及參考答案
- 九型人格與領導力講義
- 藥品經營和使用質量監(jiān)督管理辦法培訓試題及答案2023年9月27日國家市場監(jiān)督管理總局令第84號公布
- 人教版五年級上冊數(shù)學脫式計算練習200題及答案
- 卵巢黃體囊腫破裂教學查房
- 醫(yī)院定崗定編
- 計算機網絡畢業(yè)論文3000字
- 2023年大學物理化學實驗報告化學電池溫度系數(shù)的測定
- 腦出血的護理課件腦出血護理查房PPT
- 煤礦機電運輸安全培訓課件
- 扣繳個人所得稅報告表-(Excel版)
評論
0/150
提交評論