#學生選課和管理系統(tǒng)(使用vb2008和SQLServer2008)_第1頁
#學生選課和管理系統(tǒng)(使用vb2008和SQLServer2008)_第2頁
#學生選課和管理系統(tǒng)(使用vb2008和SQLServer2008)_第3頁
#學生選課和管理系統(tǒng)(使用vb2008和SQLServer2008)_第4頁
#學生選課和管理系統(tǒng)(使用vb2008和SQLServer2008)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗七:數(shù)據(jù)庫使用系統(tǒng)開發(fā)(綜合性實驗)一、指導思想培養(yǎng)學生利用所學的數(shù)據(jù)庫原理及使用的知識,選擇某一編程工具,進行數(shù)據(jù)庫使用系統(tǒng)的開發(fā);培養(yǎng)學生獨立思考問題、解決問題的能力和學生計算機使用編程的能力。二、實驗目的及要求要求學生選擇一種開發(fā)工具(如 ,e等),利用前面設計的數(shù)據(jù)庫,建立一個基于或結構的數(shù)據(jù)庫管理系統(tǒng),要求涉及:數(shù)據(jù)維護(輸入修改,刪除)、數(shù)據(jù)查詢和統(tǒng)計、報表打印等。三、涉及的內容或知識點綜合利用數(shù)據(jù)庫原理及使用所有知識,所選擇的開發(fā)工具的知識,專業(yè)知識中要解決的某個方面的問題的領域知識。四、采用的教學方法和手段根據(jù)所選設計項目,對項目進行需求分析和設計方法,形成一個問題的解決方案,學生分為2-3人一組,每組提出一個要解決的問題;先對問題進行分析,明確問題的目標和解決問題的思路,同樣設計出問題的解決方案。最后采用一種開發(fā)工具進行設計和實現(xiàn)來解決問題。小組成員各自承擔不同的設計任務。最后的實驗報告包括:問題解決方案(系統(tǒng)分析和設計報告、數(shù)據(jù)庫設計方案,功能設計,界面設計),設計的系統(tǒng),系統(tǒng)運行報告等。附錄:綜合性實驗報告要求:一、系統(tǒng)分析和設計報告二、數(shù)據(jù)庫設計方案,功能設計,界面設計三、設計的系統(tǒng)四、系統(tǒng)測試運行報告五、個人完成的程序模塊和文檔清單六、個人遇到的困難和獲得的主要成果使用儀器、材料WindowXPVisualBasic2008SQLServer2008一系統(tǒng)分析和設計1.1需求分析選課管理系統(tǒng)的主要目的是利用軟件實現(xiàn)選課的錄入、查詢、修改等功能,針對不同表的用戶(學生、教師、管理員)提供不同的操作,使學生選課及對其的管理更加方便,提高工作效率,降低管理成本。選課的管理一般包括選課查詢和選課維護兩部分,在實際的選課過程中,學生主要對課程進行選擇,了解自己的選課情況,而教師除了能夠對選擇教師自己教授的課程的學生進行查詢之外,還要對課程成績進行錄入,修改等操作。對于整個系統(tǒng)而言,為了便于對各種數(shù)據(jù)進行維護,還要增設管理員,方便對學生和教師信息以及課程等基本信息的維護,從而達到靈活的管理選課的效果。因此從安全角度考慮,有必要針對不同的用戶對數(shù)據(jù)的訪問和編輯進行控制。學生、教師和管理員對選課信息的操作權限如表 所示。表用戶所在表操作查詢修改刪除錄入學生可以不可以不可以不可以教師可以可以不可以可以管理員可以可以可以可以而管理員還具有對整個系統(tǒng)其他信息,如課程信息,的全部操作權限。功能需求分析具體如下。系統(tǒng)登陸用戶輸入用戶名和密碼,系統(tǒng)查詢數(shù)據(jù)庫中的信息對用戶名和密碼進行驗證。如果用戶名或密碼不正確則不能進入系統(tǒng)。如果用戶名存在且密碼正確,系統(tǒng)會自動根據(jù)該用戶所在的表進入不同的界面且顯示該用戶相對應的基本信息。學生界面基本信息

學生登陸成功,可看到自己的基本信息包括學號、姓名、性別、年齡、系別。選課可查看學生本人的選課情況,包括課程名、授課老師、課室、分數(shù)。并可進一步進行選擇和刪除。教師界面基本信息教師登陸成功,可看到自己的基本信息包括教師號、姓名、性別、職稱、系別。還可看到自己教授的所有課程查看學生信息可查看選擇自己教授的課程的學生名單,并可進一步對選擇該門課程的學生成績進行錄入和修改。管理員界面查詢可查詢學生信息、教師信息以及其他的一些基本選課信息包括課程信息、選課信息、課室信息、教授課程和授課地點。編輯可對正在瀏覽的學生和教師信息進行編輯操作包括修改、刪除,并可進行學生或教師基本信息的錄入。當未進行瀏覽時,僅可錄入信息而不能進行修改和刪除。報表可顯示所有學生的選課信息包括課程名、教師和授課老師。并可進一步打印或導出。除此之外,每個用戶均可重新設置自己的密碼(需要舊密碼驗證)。模塊設計系統(tǒng)架構系統(tǒng)的模塊劃分如圖 所示,將系統(tǒng)分為個大模塊,每個模塊負責的功能和用戶所在的表有關。其中用戶登陸模塊根據(jù)用戶所在的表顯示不同的界面和提供不同的操作。本系統(tǒng)采用 的 數(shù)據(jù)庫訪問技術實現(xiàn)對數(shù)據(jù)庫的訪問操作。系統(tǒng)的最底層是數(shù)據(jù)庫,本系統(tǒng)采用 作為后臺數(shù)據(jù)庫。用戶登錄模塊學耳教師 管理員

數(shù)據(jù)庫訪問接口ADO.門田SQLServer數(shù)據(jù)庫圖 模塊劃分圖用戶登錄模塊用戶登陸模塊實現(xiàn)對用戶合法性的檢查,讀取不同的用戶表,根據(jù)用戶所在TOC\o"1-5"\h\z的表展示不同的界面。用戶登陸界面的類為“ o學生模塊、教師模塊和管理員模塊功能介紹詳見功能需求具體分析 ~學生界面對應類“ u選課功能對應類“ s教師界面對應類“ ”,查看相應課程學生信息對應類“ ”,錄入、修改學生分數(shù)對應類“ ”;管理員界面對應類“ ”,錄入、修改學生信息對應類“ ”,錄入、修改教師信息對應類“ ”,查看和編輯其他選課信息對應類“ ”,報表對應類“”。所有用戶修改密碼統(tǒng)一使用類“ i止匕外,還定義了幾個公共類方便操作?!?”類存儲全局變量;“ ”類保存用戶登錄名和密碼以及提供了修改密碼的方法; ”類的作用是提供統(tǒng)一的方法執(zhí)行語句,并對語句進行判斷是添加、刪除、更新操作還是查詢操作,若為前者,彈出對應信息框通知用戶。二數(shù)據(jù)庫分析和設計概念設計在以上的系統(tǒng)分析基礎上,設計出系統(tǒng)的 圖,如圖所示。

圖2-1E-R圖主要包括個實體,分別是學生、教師、課程、教室及三個關系,即選修、講授和授課地。一門課程可由多個老師教授,一個老師也可以教授多門課程,課程實體和教師實體是多對多關系。一門課程可由多個學生選擇,一個學生也可以選擇多門課程,課程實體和學生實體是多對多關系。一門課程可安排在多個教室上,一個教室也可以作為多門課程的授課地點,課程實體和教室之間是多對多關系。邏輯設計在根據(jù)以上實體和實體的關系,形成表和表之間的邏輯關系,如圖 所示。

圖2-2邏輯關系圖圖2-2邏輯關系圖英語部分為實際表名中文部分為解釋表的具體項如下所示(為方便編程除了課程表項的類別),英語部分為實際表名中文部分為解釋學生學號、姓名 、性別、年齡、系別教師教師號,姓名 ,性別,職稱 ,系別課程課程號、課程名 ,學分,類別教室教室號,多媒體,座位講授(教師號 ,課程號)選修(學號,課程號,成績 )授課地(課程號 ,教室號 )數(shù)據(jù)庫的實現(xiàn)

各個表內列的名稱、含義、是否主鍵等基本信息可從 獲知,這里不再贅述。在數(shù)據(jù)庫中創(chuàng)建各個表的 語句見附錄一。三系統(tǒng)實現(xiàn)新建一個項目,使用默認配置,保存為“ ”i關于項目中各個類的代碼部分詳見附錄二。代碼部分帶有注釋,就不重復解釋了。設置全局變量和自定義用戶類以及操作類添加一個模塊,用于保存全局變量。單擊“項目” “添加模塊”,并命名為“ ”c代碼部分詳見附錄二。添加一個類,操作同上,保存為“”e之所以使用類,是為了能保存用戶的登陸信息,和在修改密碼時能傳遞信息,而不需要重新執(zhí)行語句進行查詢。再添加一個類,保存為“ r其功能為執(zhí)行 語句,并對語句進行判斷是添加、刪除、更新操作還是查詢操作,若為前者,彈出對應信息框通知用戶。登陸窗口添加窗體,保存為“ ”,使用工具箱(視圖工具箱),添加各控件后登陸窗口如圖 所示。圖3-13.3學生界面如果是用戶是學生,則登陸后界面如圖 所示。對應的項目文件為

圖3-2學生信息界面可看到基本信息(除了密碼項)。單擊“選課”按鈕,彈出選課對話框,如圖 所示,對應項目文件為圖3-3代碼中主要使用語句執(zhí)行并進行數(shù)據(jù)填充,如其中自定義的填充數(shù)據(jù)集方法 。

還使用了其他幾個 語句進行查詢,至于具體的代碼詳見目錄,這里只給出執(zhí)行的 語句。查找對應課程名的課程號查找對應學號和課程號的記錄插入選課記錄刪除選課記錄單擊“修改密碼”按鈕進入修改密碼對話框,如圖3-4所示,對應項目文件為“dlgModifyPW.vb"。注:所有用戶修改密碼都是使用該窗口界面,可節(jié)省空間。圖3-4圖3-4主要判斷“舊密碼”和“新密碼”是否一致,通過類保存的密碼進行對比,而不是使用語句重新查詢。之后調用新。類中的修改密碼方法進行密碼更而不是使用語句重新查詢。之后調用新。類中的修改密碼方法進行密碼更教師界面教師用戶登陸后的界面如圖3-5所示,所對應的項目文件為“frmTeacher.vb”。圖基本代碼和學生界面的代碼類似,主要不同的地方有:增加了一個表格,需要對表格進行填充,并且對雙擊表格單元格內容時編程使其可以查看選修該門課程的學生信息。雙擊表格單元格內容需要使用表格的 過程,具體代碼如下:注:下面的第一二行代碼應該在同一行,由于排版問題分開了。PrivateSubgrdTC_CellContentDoubleClick(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesgrdTC.CellContentDoubleClick’判斷有沒超過范圍并獲取當前活動單元的值IfgrdTC.CurrentCell.RowIndex<grdTC.RowCount-1Then'storeCnameforpassingittofrmTStudengInfoCname=grdTC.Item(0,grdTC.CurrentRow.Index).ValuefrmTStudentInfo.ShowDialog()EndIfEndSub雙擊單元格內容查看選修該門課程的學生信息,界面如圖3-6所示,對應的項目文件為“frmTStudentInfo.vb”圖3-6可看到選修該門課程的學生信息(學號、姓名、系別、分數(shù),列名還沒修改)雙擊學生基本信息表格的單元格內容可修改該行記錄的學生的分數(shù),界面如圖3-7所示,對應的項目文件為“dlgTModifyGrade.vb”。圖3-7僅可以修改分數(shù)項。提交修改即可修改分數(shù)。管理員界面管理員用戶登陸后的界面如圖 所示,對應項目文件為“查詢口編輯報表幫助教師信息學生信息其他 卜關干藤幫助查詢口編輯報表幫助教師信息學生信息其他 卜關干藤幫助請在此如查看學生選課情況圖3-8由于管理員的功能比較多,所以代碼也相對較多和復雜,主要代碼部分都有注釋詳加解釋,故不再此贅述。菜單欄各下拉項如圖 所示。圖3-9查詢菜單僅可以查詢,表格屬性為只讀。需要修改或者刪除,需要在編輯項中選中修改或刪除才可以進行編輯。當沒有選中查詢菜單中的項時,編輯菜單中的修改和刪除是灰白的,不能被選擇。查詢后選擇修改,則可以在表格中雙擊需要修改的記錄,彈出修改對話框。例:單擊查詢->學生信息,然后選擇編輯->修改,彈出“修改學生信息對話框”,如圖3-10所示。圖3-10修改時,不能修改學號項。單擊查詢->教師信息,然后選擇編輯->修改,則彈出“修改教師信息對話框”。查詢后選擇刪除,則可以在表格中雙擊需要修改的記錄,進行刪除,并且自動退出修改狀態(tài)。例:單擊查詢->學生信息,然后選擇編輯->刪除,如圖3-11所示:

明管理員?10020001李二明管理員?10020001李二男教授數(shù):10020002張三男講師計:米選擇“編輯->錄入。學生信息”彈出“錄入學生信息對話框”如圖3-12所示。圖3-12選擇“編輯->錄入。教師信息”則彈出“錄入教師信息對話框”。為了節(jié)省空間,查看課程信息等其他信息時,只給出了表格,并可以直接在表格上編輯,如圖3-13所示。圖3-13報表顯示的是學生的選課信息(課程名稱、課室、授課老師姓名)如圖3-14所示,使用水晶報表制作,可導出為excel表格。報表likid甲1甲3李勇劉晨錢小平王大力王剛吳賓張海2011-12-CnamBlikid甲1甲3李勇劉晨錢小平王大力王剛吳賓張海2011-12-CnamBCRn口Tnam巳八=litid數(shù)據(jù)庫原理與應用計算機掰絡201103李二李二甲1電子商務美不302301張三張三甲3美術301張三V<叩>附附▼L卜方芍|主報至當前頁碼:1總頁數(shù):1+縮放系數(shù):1口口區(qū)圖錄入、修改學生信息對應項目文件“ ”,錄入、修改教師信息對應項目文件“ a查看和編輯其他選課信息對應項目文件“ ”,報表對應項目文件“ ”。四系統(tǒng)測試運行大部分正常運行的界面在第三部分的系統(tǒng)實現(xiàn)部分已經(jīng)展示在此僅展示部分錯誤輸入的情況。用戶名輸入錯誤時給出的提示。學生選課時添加已經(jīng)選擇的課程時給出的提示。修改密碼時輸入的舊密碼不正確時給出的提示。信息框八輸入的舊密碼不正確!確定錄入學生信息時學號為空給出的提示。由于時間匆忙,可能存在部分未被測試到的安全性隱患。五程序模塊和文檔清單主要程序代碼段設置全局變量'ImportDataandSqlClientnamespaces...ImportsSystem.DataImportsSystem.Data.SqlClientModulePublicVarPublicobjConnectionAsNewSqlConnectionPublicobjDataAdapterAsNewSqlDataAdapter()PublicSQLStringAsString '保存SQL語句PublicstrInfoAsString '保存消息窗口標題PublicUserAsCUser '保存登陸用戶賬號、密碼信息'調用main過程,以適應不同的測試界面Submain()‘初始化objDataAdapter.SelectCommand=NewSqlCommand()strInfo="信息框"EndSubPublicSubobjOpen()'Opentheconnection,ifalreadyopenthenskipoverIfobjConnection.State<>ConnectionState.OpenThenobjConnection.Open()EndIfEndSubPublicSubobjClose()'Closetheconnection,ifalreadyclosethenskipoverIfobjConnection.State<>ConnectionState.ClosedThenobjConnection.Close()EndIf

EndSubEndModule保存用戶的登陸信息,和在修改密碼時能傳遞信息,而不需要重新執(zhí)行 語句進行查詢。PublicClassCUserPrivatem_UserIDAsString '保存用戶名Privatem_PasswordAsString '保存密碼Privatem_UserTypeAsInteger '0表示管理員,1表示學生,2表示老師PropertyUserID()AsStringGetReturnm_UserIDEndGetSet(ByValvalueAsString)mUserID=valueEndSetEndPropertyPropertyPassword。AsStringGetReturnm_PasswordEndGetSet(ByValvalueAsString)mPassword=valueEndSetEndPropertyPropertyUserType()AsStringGetReturnm_UserTypeEndGetSet(ByValvalueAsString)mUserType=valueEndSetEndPropertySubNew(ByValIDAsString,ByValPWAsString)‘傳遞賬號信息m_UserID=IDmPassword=PWEndSubFunctionPasswordModify(ByValNewPasswordAsString,ByValUserTypeAsString)AsBooleanDimstrTypeAsString '對應不同的登陸用戶查詢的表名字母DimstrCharAsChar 對應不同的登陸用戶的賬號和密碼查詢的首字母strType=""

’0表示管理員,1表示學生,2表示老師IfUserType=0ThenstrType="Admin"strChar="A"ElselfUserType=1ThenstrType="Student"strChar="S"ElseIfUserType=2ThenstrType="Teacher"strChar="T"EndIf'DimSQLStringAsStringSQLString=_"update"&strType&"set"&strChar&"password='"&NewPassword&"'where"&strChar&"no='"—&User.m_UserID&"'"’使用自定義類執(zhí)行SQL語句CDBOperation.DBoperate(SQLString)'Refreshpasswordm_Password=NewPasswordEndFunctionEndClassPublicClassCDBOperationSharedFunctionDBoperate(ByValSQLStringAsString)’執(zhí)行SQL語句,并對SQL語句進行判斷是添加、刪除、更新操作還是查詢操作,’若為前者,彈出對應信息框通知用戶。TryobjDataAdapter.SelectCommand.CommandText=SQLStringobjDataAdapter.SelectCommand.CommandType =CommandType.TextDimsTokens()AsString'declareanArray'Splitstringby""sTokens=SQLString.Split("")'OpentheconnectionobjOpen()’將添加、刪除、更新操作中使用的SQL語句的第一個單詞和’要執(zhí)行的SQL語句的第一個單詞進行比較,若為前者的操作,則執(zhí)行SQL語句并給予用戶對應的提示‘否則僅執(zhí)行語句IfStrings.InStr("INSERT,DELETE,UPDATE",sTokens(0).ToUpper)Then'Executethecommand

objDataAdapter.SelectCommand.ExecuteNonQuery()IfsTokens(0).ToUpper="INSERT"Then乂$880乂("插入成功",MsgBoxStyle.Information,strInfo)‘不可直接return,因為還需要關閉數(shù)據(jù)庫連接節(jié)省資源EndIfIfsTokens(0).ToUpper="DELETE"ThenMsgBox("刪除成功",MsgBoxStyle.Information,strInfo)EndIfIfsTokens(0).ToUpper="UPDATE"ThenMsgBox("更新成功",MsgBoxStyle.Information,strInfo)EndIfElse'ExecutethecommandobjDataAdapter.SelectCommand.ExecuteNonQuery()EndIfobjClose()CatchexAsExceptionMsgBox(ex.Message)EndTryReturnNothingEndFunctionEndClassfrmLogin.vbfrmLogin.vb個個個個個個個個個個個個個個個個個個個個個個個PublicClassfrmLoginDimLDataSetAsNewDataSet。DimobjDataViewAsDataViewPrivateSubReset()'重置txtUserID.Text=""txtPasswd.Text=""EndSubFunctionLoginConfirm(ByValIDAsString,ByValPWAsString)AsInteger’判斷輸入的用戶名和密碼是哪個表(學生、教師、管理員)中的記錄‘使用SQL語句查詢對應的學生學號和密碼objDataAdapter.SelectCommand.CommandText=_"selectSnofromStudent"—&"whereSno='"&User.UserID—&"'andSpassword='"&User.Password&"'"objDataAdapter.SelectCommand.CommandType=CommandType.TextobjOpen()'ExecuteScalar方法返回表的第一行的第一個數(shù)據(jù)?!驗樾枰祷財?shù)據(jù)以便判斷,故沒有調用CDBOperation類進行操作。SQLString=objDataAdapter.SelectCommand.ExecuteScalarobjClose()

TryIfSQLString=NothingThenobjDataAdapter.SelectCommand.CommandText=_"select*fromTeacher"—&"whereTno='"&User.UserID—&"'andTpassword='"&User.Password&"'"objOpen()'ExecuteScalar方法返回表的第一行的第一個數(shù)據(jù)。SQLString=objDataAdapter.SelectCommand.ExecuteScalarobjClose()IfSQLString=NothingThenobjDataAdapter.SelectCommand.CommandText=_"select*fromAdmin"—&"whereAno='"&User.UserID—&"'andApassword='"&User.Password&"'"objOpen()'ExecuteScalar方法返回表的第一行的第一個數(shù)據(jù)。SQLString=objDataAdapter.SelectCommand.ExecuteScalarobjClose()IfSQLString=NothingThenUser.UserType=-1MsgBox("輸入用戶名或密碼有誤,請重試",MsgBoxStyle.Exclamation,strInfo)Return-1ElseUser.UserType=0MsgBox("管理員登陸成功!",MsgBoxStyle.Information,strInfo)Return0EndIfElseUser.UserType=2MsgBox("教師登陸成功!",MsgBoxStyle.Information,strInfo)Return2EndIfElseUser.UserType=1MsgBox("學生登陸成功!",MsgBoxStyle.Information,strInfo)Return1EndIfCatchexAsExceptionMsgBox(ex.Message)EndTry

EndFunctionPrivateSubbtnOK_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnOK.ClickUser=NewCUser(txtUserID.Text,txtPasswd.Text)DimflagAsInteger'-1表示不存在,0表示管理員,1表示學生,2表示老師flag=LoginConfirm(User.UserID,User.Password)If-1=flagThentxtPasswd.Text=""txtPasswd.Focus()ElseIf0=flagThenfrmAdmin.Show()'markElseIf1=flagThenfrmStudent.Show()ElseIf2=flagThenfrmTeacher.Show()EndIf'Successfullylogin,closefrmLoginwindowMe.Close()EndIfEndSubPrivateSubbtnReset_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnReset.ClickReset()txtUserID.Focus()EndSubPrivateSubbtnExit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnExit.ClickEndEndSubPrivateSubfrmLogin_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadIfobjConnection.Database=""ThenCallmain()objConnection.ConnectionString=_"DataSource=LI-KID;InitialCatalog=學生選課庫;IntegratedSecurity=True"objDataAdapter.SelectCommand.Connection=objConnectionEndIfPublicClassfrmStudent

DimSDataSetAsNewDataSet()DimobjDataViewAsDataViewPrivateSubFillDataSetAndView()SQLString=_"selectSno,Sname,Ssex,Sage,Sdept,Spassword"_&"fromStudent"—&"whereSno='"&User.UserID&"'andSpassword='"&User.Password&"'"’使用自定義類執(zhí)行SQL語句CDBOperation.DBoperate(SQLString)‘清除數(shù)據(jù)集中的內容以防重復填充SDataSet.Clear()’填充數(shù)據(jù):objDataAdapter.Fill(SDataSet,"StudentInfo")’填充數(shù)據(jù)視圖objDataView=NewDataView(SDataSet.Tables("StudentInfo"))EndSubPrivateSubBindFields()'ClearanypreviousbindingstxtSno.DataBindings.Clear()txtSname.DataBindings.Clear()txtSsex.DataBindings.Clear()txtSage.DataBindings.Clear()txtSdept.DataBindings.Clear()Try'AddnewbindingstotheDataViewobjecttxtSno.DataBindings.Add("Text",objDataView,"Sno")txtSname.DataBindings.Add('Text",objDataView,"Sname")txtSsex.DataBindings.Add("Text",objDataView,"Ssex")txtSage.DataBindings.Add("Text",objDataView,"Sage")txtSdept.DataBindings.Add('Text",objDataView,"Sdept")CatchexAsExceptionMsgBox(ex.Message)EndTryEndSubPrivateSubfrmStudent_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load調用自定義過程進行數(shù)據(jù)填充FillDataSetAndView()調用自定義過程進行數(shù)據(jù)綁定BindFields()EndSubPrivateSubbtnLogout_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnLogout.Click

frmLogin.Show()Me.Close()EndSubPrivateSubbtnModifyPW_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnModifyPW.ClickdlgModifyPW.ShowDialog()EndSubPrivateSubbtnSelect_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnSelect.ClickdlgSChooseCourse.ShowDialog()EndSubPrivateSubbtnExit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnExit.ClickobjConnection.Close()注:在“ ”中使用到一個填充數(shù)據(jù)的方法e分別填充了數(shù)據(jù)集 和文本框 的值,并使用了手動綁定,定義該方法為 。在其他需要手動綁定文本框和填充數(shù)據(jù)集的地方將不再重復附上詳細代碼,需要查看詳細代碼的請查看附帶的項目文件。

CDBOperation.DBoperate(SQLString)‘清除數(shù)據(jù)集中的內容以防重復填充SCCDataSet.Clear()’填充數(shù)據(jù)集objDataAdapter.Fill(SCCDataSet,"SCInfo")’設置表格數(shù)據(jù)源和成員grdSC.AutoGenerateColumns=TruegrdSC.DataSource=SCCDataSetgrdSC.DataMember="SCInfo"'ChangecolumnnamesusingthecolumnindexgrdSC.Columns(0).HeaderText="課程名"'ChangecolumnnamesusingthecolumnnamegrdSC.Columns("Grade").HeaderText="分數(shù)"grdSC.Columns("Tname").HeaderText="教師名"grdSC.Columns("CRno").HeaderText="課室號"’設置寬度,默認100grdSC.Columns("Tname").Width=75grdSC.Columns("CRno").Width=75grdSC.Columns("Grade").Width=75'grdSC.Columns("Cname").Width/1.5EndSubPrivateFunctionIsExist()AsBoolean’查找對應學號和課程號的記錄SQLString=_"select*fromSCwhereSno='"&User.UserID&"'"—&"andCno='"&Cno&"'"objDataAdapter.SelectCommand.CommandText=SQLStringobjOpen()‘若要添加的課程已存在(即已選),則彈出信息框并返回TRUEIf(objDataAdapter.SelectCommand.ExecuteScalar)ThenMsgBox("該課程已選!",MsgBoxStyle.Exclamation,strInfo)ReturnTrueEndIfobjClose()ReturnFalseEndFunctionPrivateSubbtnCancel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnCancel.ClickMe.Close()EndSubPrivateSubdlgSChooseCourse_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadcboChooseCourse.Items.Add("計算機文化學")cboChooseCourse.Items.Add('VB")

cboChooseCourse.Items.Add("計算機網(wǎng)絡")cboChooseCourse.Items.Add("數(shù)據(jù)庫原理和使用")cboChooseCourse.Items.Add("高等數(shù)學”)cboChooseCourse.Items.Add("數(shù)據(jù)結構")cboChooseCourse.Items.Add("美術")cboChooseCourse.Items.Add("電子商務")’顯示下拉框的第一個數(shù)據(jù)(索引值為0)cboChooseCourse.SelectedIndex=0'FilltheDataGridFillDataGrid()EndSubPrivateSubbtnAdd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnAdd.ClickMsg=MsgBox("確定添加?",MsgBoxStyle.OkCancel,strInfo)'IfOK,thenexecuteSQLandrefillDataGridIfMsg=MsgBoxStyle.OkCancelThen’確定添加時獲得CnoCnameToCno()’判斷添加的課程是否是已選課程,若未選則添加If(IsExist()=False)Then’插入選課記錄SQLString="insertintoSC(Cno,Sno)values。"&Cno&"','"&User.UserID&"')"調用自定義操作類執(zhí)行SQL語句CDBOperation.DBoperate(SQLString)FillDataGrid()EndIfEndIfEndSubPrivateSubbtnDel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnDel.ClickCnameToCno()'刪除選課記錄SQLString="deleteSCwhereCno='"&Cno&"'andSno='"&User.UserID&"'"Msg=MsgBox("確定刪除?",MsgBoxStyle.OkCancel,strInfo)'IfOK,thenexecuteSQLandrefillDataGridIfMsg=MsgBoxStyle.OkCancelThenCDBOperation.DBoperate(SQLString)FillDataGrid()EndIfEndSubEndClass注:在“ ”中自定義了 方法用于填充表格,還有添加和刪除操作,和綁定下拉列表框。在其他使用類似方法的代碼將不再重復附上詳細代碼,需要查看詳細代碼的請查看附帶的項目文件。、上、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、上、上個個個個個小小小小小小小小小小小小小小小小小小frmTeacher.vb、上、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、上、上

個個個個個個個個個個個個個個個個個個個個個個小、上、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、上、上個個個個個小小小小小小小小小小小小小小小小小小frmTeacher.vb、上、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、卜、上、上

個個個個個個個個個個個個個個個個個個個個個個小PrivateSubfrmTeacher_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load調用自定義過程進行數(shù)據(jù)填充FillDataSetAndView()調用自定義過程進行數(shù)據(jù)綁定BindFields()調用自定義過程填充表格FillGrid()EndSubPrivateSubgrdTC_CellContentDoubleClick(ByValsenderAsObject,ByValeAs System.Windows.Forms.DataGridViewCellEventArgs) HandlesgrdTC.CellContentDoubleClick’判斷有沒超過范圍并獲取當前活動單元的值IfgrdTC.CurrentCell.RowIndex<grdTC.RowCount-1Then'storeCnameforpassingittofrmTStudengInfoCname=grdTC.Item(0,grdTC.CurrentRow.Index).ValuefrmTStudentInfo.ShowDialog()EndIfEndIf注:該部分填充數(shù)據(jù)集 、填充表格 和綁定文本框的代碼未給出,和前面給出的代碼大同小異,需要查看詳細代碼請自行查閱項目文件。新增一個對“雙擊表格單元格內容”事件的操作 DPublicClassfrmAdminPublicTypeAsInteger'1forStudent,2forTeacher,3forCourse,4forSC,5forClassroom,6forTC,7forVenueDimisClickSBAsBoolean'judgewhetherthesearchbuttonshasbeenclicked,whenclickedthencaneditDimisModifyStatusAsBoolean'judgewhethertheModifybuttonhasbeenclicked(ModifyStatus)DimisDeleteStatusAsBoolean'judgewhethertheDeletebuttonhasbeenclicked(DeleteStatus)’由于錄入和修改是是使用同一個對話框,所以需要設置一標志判斷當前狀態(tài)PublicisAddStatusAsBooleanDimADataSetAsNewDataSet()PrivateSubFillDataSetAndGrid(ByValTypeAsInteger)’如果是瀏覽學生信息IfType=1ThenSQLString="select*fromStudent"CDBOperation.DBoperate(SQLString)ADataSet.Clear()objDataAdapter.Fill(ADataSet,"SInfo")grdInfo.DataSource=ADataSetgrdInfo.DataMember="SInfo"’如果是教師信息ElseIfType=2ThenSQLString="select*fromTeacher"CDBOperation.DBoperate(SQLString)ADataSet.Clear()objDataAdapter.Fill(ADataSet,"TInfo")grdInfo.DataSource=ADataSetgrdInfo.DataMember="TInfo"EndIfEndSubPrivateSubLogoutToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesLogoutToolStripMenuItem.ClickfrmLogin.Show()Me.Close()EndSubPrivateSubExitToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesExitToolStripMenuItem.ClickEndEndSubPrivateSubTInfoToolStr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論