版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一.需求分析1.1設(shè)計(jì)任務(wù)本設(shè)計(jì)的任務(wù)是學(xué)生選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),其中要實(shí)現(xiàn),課程信息管理〔錄入、查詢(xún)、維護(hù)〕;學(xué)生信息管理〔錄入、查詢(xún)、維護(hù)〕;教師信息管理〔錄入、查詢(xún)、維護(hù)〕;選課管理〔選課、退課、選課信息查詢(xún)〕;教師輸入成績(jī)管理〔查詢(xún)學(xué)生選的課并給學(xué)生成績(jī)〕。1.2系統(tǒng)性能需求實(shí)用性:為學(xué)生選課提供方便,可以有效的管理學(xué)生選課。先進(jìn)性:產(chǎn)品的系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)應(yīng)緊跟著整個(gè)計(jì)算機(jī)開(kāi)展潮流,采用當(dāng)時(shí)最先進(jìn)的設(shè)計(jì)思想,利用最新的開(kāi)發(fā)技術(shù)和開(kāi)發(fā)工具。使系統(tǒng)能夠無(wú)論在功能設(shè)計(jì)上,還是在技術(shù)實(shí)現(xiàn)上,都處于同行業(yè)的領(lǐng)先地位。操作簡(jiǎn)單:本系統(tǒng)應(yīng)該適用于不同水平的使用者,同時(shí)系統(tǒng)不應(yīng)太復(fù)雜和煩瑣,因此要求系統(tǒng)的操作盡可能簡(jiǎn)單易行。適應(yīng)性:應(yīng)該能廣泛應(yīng)用于不同類(lèi)型的大、中、小學(xué)院校,系統(tǒng)采用模塊化設(shè)計(jì),用戶(hù)可以根據(jù)自己的實(shí)際情況自行組合,使系統(tǒng)在不同的硬件環(huán)境下都能得以應(yīng)用。代碼可讀性好:文中的代碼將盡可能簡(jiǎn)潔,易懂。1.3可行性分析經(jīng)濟(jì)可行性:由于本系統(tǒng)的主要背景是課程設(shè)計(jì),不注重直接的經(jīng)濟(jì)效益和其后的開(kāi)展方向,只在注重自身水平和能力的提高,對(duì)自身的經(jīng)濟(jì)要求也不高,只要有一臺(tái)能運(yùn)MicrosoftVisualStudio2023軟件的電腦便可,所以不用考慮到經(jīng)濟(jì)問(wèn)題。技術(shù)可行性:本系統(tǒng)的開(kāi)發(fā)使用數(shù)據(jù)庫(kù),只需考慮安裝SQLsever數(shù)據(jù)庫(kù)的問(wèn)題,在技術(shù)上要求并不高,因此本系統(tǒng)在技術(shù)上是可行的。運(yùn)行可行性:本系統(tǒng)是一個(gè)學(xué)生選課系統(tǒng),所消耗的資源非常的小,現(xiàn)在一般的電腦無(wú)論是硬件還是軟件都能夠滿足條件,因此,本系統(tǒng)在運(yùn)行上是可行的。綜上所述,本系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的,因此,它在技術(shù)上是可行的。二.?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)2.1實(shí)體關(guān)系圖學(xué)號(hào)學(xué)號(hào)性別性別學(xué)生表學(xué)生表班級(jí)班級(jí)出生日期期期姓名出生日期期期姓名圖2.11學(xué)生實(shí)體關(guān)系圖教師表所在系所授課程所在系所授課程教師名教師編號(hào)教師名教師編號(hào)圖2.12教師實(shí)體關(guān)系圖課程名稱(chēng)課程名稱(chēng)學(xué)分課程表開(kāi)課系課程編號(hào)任課老師圖2.13課程實(shí)體關(guān)系圖教師編號(hào)教師編號(hào)課程名稱(chēng)學(xué)分選課表教師姓名課程編號(hào)成績(jī)名班級(jí)學(xué)號(hào)姓名圖2.14選課實(shí)體關(guān)系圖2.2數(shù)據(jù)字典數(shù)據(jù)項(xiàng)是數(shù)據(jù)庫(kù)的關(guān)系中不可再分的數(shù)據(jù)單位,下表分別列出了數(shù)據(jù)的名稱(chēng)、數(shù)據(jù)類(lèi)型、長(zhǎng)度、取值能否為空。利用SQLServer2000建立“學(xué)生選課〞數(shù)據(jù)庫(kù),其根本表清單及表結(jié)構(gòu)描述如下:表2.1數(shù)據(jù)庫(kù)中用到的表:數(shù)據(jù)庫(kù)表名關(guān)系模式名稱(chēng)備注Student學(xué)生表學(xué)生根本信息表Course課程表課程根本信息表Teach教師表教師根本信息Stu_Cour選課表學(xué)生選課信息表2.2Student根本情況數(shù)據(jù)表:字段名字段類(lèi)型NotNull說(shuō)明SnoCharPrimarykey學(xué)號(hào)SnamecharNotNull姓名Sclasschar班級(jí)Sageintr出生日期Ssexchar性別表2.3Teach根本情況數(shù)據(jù)表:字段名字段類(lèi)型NotNull說(shuō)明TnoCharPrimarykey教師編號(hào)TnamecharNotNull教師名Cnochar外部碼所授課程Tdeptchar所在系表2.4Course數(shù)據(jù)表:字段名字段類(lèi)型約束控制說(shuō)明Cnochar主鍵〔primarykey〕課程號(hào)Cnamecharnotnull課程名稱(chēng)Ctimeint課時(shí)Ccreditint學(xué)分Cteachenchar任課老師表2.5Stu_cour情況數(shù)據(jù)表:字段名字段類(lèi)型約束控制說(shuō)明Cnochar外部鍵課程編號(hào)Snochar外部鍵學(xué)號(hào)Snamechar姓名Sclasschar班級(jí)SCgradechar成績(jī)Tnamechar教師名Tnochar教師編號(hào)Cnamechar課程名稱(chēng)Ccreditint成績(jī)Ccreditint學(xué)分三.概要設(shè)計(jì)3.1系統(tǒng)總體功能根據(jù)本設(shè)計(jì)的要求可以得到如圖3-1所示的系統(tǒng)功能圖。學(xué)生選課系統(tǒng)學(xué)生選課系統(tǒng)用戶(hù)登錄用戶(hù)登錄學(xué)生用戶(hù)管理員教師用戶(hù)學(xué)生用戶(hù)管理員教師用戶(hù)個(gè)人信息選課結(jié)果選課列表選課要求刪除修改瀏覽添加個(gè)人信息刪除修改瀏覽個(gè)人信息選課結(jié)果選課列表選課要求刪除修改瀏覽添加個(gè)人信息刪除修改瀏覽退出登錄退出登錄圖3-1系統(tǒng)功能圖3.2系統(tǒng)功能模塊設(shè)計(jì)本系統(tǒng)需要完成的功能主要有:〔1〕有關(guān)學(xué)生信息的輸入,包括輸入學(xué)生根本信息、所選課程?!?〕學(xué)生信息的查詢(xún)、修改、刪除?!?〕課程管理信息的添加、修改、刪除和瀏覽等?!?〕學(xué)生選課管理信息的查詢(xún)、添加、修改、刪除?!?〕學(xué)生實(shí)現(xiàn)選擇課程和退選課程的功能?!?〕教師實(shí)現(xiàn)查詢(xún)學(xué)生選的課并給學(xué)生成績(jī)。四.詳細(xì)設(shè)計(jì)4.1登陸界面的設(shè)計(jì)登錄模塊提供用戶(hù)登錄界面,用戶(hù)輸入正確的用戶(hù)名和密碼后,那么可進(jìn)入系統(tǒng)主窗口〔即導(dǎo)航頁(yè)面〕,從而可以選擇進(jìn)入相應(yīng)的子系統(tǒng)。在系統(tǒng)登錄界面中,單擊【確定】按鈕驗(yàn)證用戶(hù)名和用戶(hù)密碼,假設(shè)正確那么進(jìn)入系統(tǒng)主界面;否那么彈出錯(cuò)誤提示,并等待用戶(hù)的重新輸入。單擊【取消】按鈕那么關(guān)閉登錄界面,退出系統(tǒng)。首先翻開(kāi)VisualStudio2023,新建一個(gè)Windows應(yīng)用程序,命名為“學(xué)生選課系統(tǒng)〞,再為應(yīng)用程序添加一個(gè)窗體。然后在窗體適宜位置添加所需要的組件并設(shè)置相應(yīng)屬性。接下來(lái)編寫(xiě)登錄模塊的代碼,局部代碼如下所示。stringLJ=@"server=.;database=myd;uid=sa;pwd=";//建立連接SqlConnectionconn=newSqlConnection(LJ);conn.Open();//讀取所輸入的用戶(hù)名和密碼SqlCommandcomm=conn.CreateCommand();if(rbAdmin.Checked){stringsql="SELECTadminname,adminpasFROMadminWHERE(adminname='"+tbName.Text+"')";comm.CommandText=sql;SqlDataReaderdatar=comm.ExecuteReader();DateTimedt=newDateTime(2023,1,1);if(DateTime.Now>=dt){MessageBox.Show("程序已經(jīng)過(guò)期,請(qǐng)聯(lián)系開(kāi)發(fā)商!","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);Close();//判斷是否存在輸入的用戶(hù)else{if(!datar.HasRows){MessageBox.Show("用戶(hù)名不存在,請(qǐng)重新輸入!");tbName.Focus();return;}/讀取數(shù)據(jù)庫(kù)的內(nèi)容,并與輸入的進(jìn)行比擬;while(datar.Read()){//判斷用戶(hù)輸入是否正確if(datar["adminpas"].ToString().Trim()!=tbPas.Text.Trim()){MessageBox.Show("用戶(hù)密碼不正確,請(qǐng)重新輸入!");tbPas.Focus();return;}else{AdminLoginf2=newAdminLogin();f2.ShowDialog();Close();}}}}elseif(rbStudent.Checked){stringsql="SELECTsno,spasFROMstudentWHERE(sno='"+tbName.Text+"')";comm.CommandText=sql;SqlDataReaderdatar=comm.ExecuteReader();DateTimedt=newDateTime(2023,1,1);if(DateTime.Now>=dt){MessageBox.Show("程序已經(jīng)過(guò)期,請(qǐng)聯(lián)系開(kāi)發(fā)商!","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);Close();}//判斷是否存在輸入的用戶(hù)else{if(!datar.HasRows){MessageBox.Show("用戶(hù)名不存在,請(qǐng)重新輸入!");tbName.Focus();return;}//讀取數(shù)據(jù)庫(kù)的內(nèi)容,并與輸入的進(jìn)行比擬;while(datar.Read()){//判斷用戶(hù)輸入是否正確if(datar["spas"].ToString().Trim()!=tbPas.Text.Trim()){MessageBox.Show("用戶(hù)密碼不正確,請(qǐng)重新輸入!");tbPas.Focus();return;}else{StudentLoginf3=newStudentLogin();f3.ShowDialog();Close();}}}}else{stringsql="SELECTtno,tpasFROMteacherWHERE(tno='"+tbName.Text+"')";comm.CommandText=sql;SqlDataReaderdatar=comm.ExecuteReader();DateTimedt=newDateTime(2023,1,1);if(DateTime.Now>=dt){MessageBox.Show("程序已經(jīng)過(guò)期,請(qǐng)聯(lián)系開(kāi)發(fā)商!","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);Close();}//判斷是否存在輸入的用戶(hù)else{if(!datar.HasRows){MessageBox.Show("用戶(hù)名不存在,請(qǐng)重新輸入!");tbName.Focus();return;}//讀取數(shù)據(jù)庫(kù)的內(nèi)容,并與輸入的進(jìn)行比擬;while(datar.Read()){//判斷用戶(hù)輸入是否正確if(datar["tpas"].ToString().Trim()!=tbPas.Text.Trim()){MessageBox.Show("用戶(hù)密碼不正確,請(qǐng)重新輸入!");tbPas.Focus();return;}else{TeacherLoginf4=newTeacherLogin();f4.ShowDialog();Close();}}}}完成后的界面效果如圖4.1所示圖4.1登陸界面4.2管理員登陸界面設(shè)計(jì)按照以上步驟設(shè)計(jì)一個(gè)管理員登陸界面如圖4.2所示。圖4.2管理員登陸界面4.3教師登陸界面設(shè)計(jì)首先翻開(kāi)VisualStudio2023,新建一個(gè)Windows應(yīng)用程序,再為應(yīng)用程序添加一個(gè)窗體。然后在窗體適宜位置添加所需要的組件并設(shè)置相應(yīng)屬性。局部代碼如下所示:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespacemyd{publicpartialclassTeacherLogin:Form{publicTeacherLogin(){InitializeComponent();}privatevoidbutOK_Click(objectsender,EventArgse){if(tbSearch.Text.Length<=0){MessageBox.Show("查詢(xún)條件不能為空","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}inti;if(int.TryParse(tbSearch.Text,outi)){if(tbSearch.Text.Length<=0){MessageBox.Show("學(xué)號(hào)必需為數(shù)字","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}}SqlConnectioncnn=newSqlConnection("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");SqlCommandcmd=newSqlCommand();cmd.CommandText="SC_Info_Search";cmd.Parameters.Add("@SearchType",SqlDbType.Decimal);cmd.Parameters.Add("@SearchText",SqlDbType.VarChar,50);i=0;cmd.Parameters["@SearchType"].Value=i;cmd.Parameters["@SearchText"].Value=tbSearch.Text.Trim();cmd.CommandType=CommandType.StoredProcedure;cmd.Connection=cnn;SqlDataAdaptersda=newSqlDataAdapter(cmd);try{DataSetds=newDataSet();sda.Fill(ds);//填充數(shù)據(jù)集sCBindingSource.DataSource=ds.Tables[0];//將數(shù)據(jù)集顯示出來(lái)//把查詢(xún)出來(lái)的數(shù)據(jù)綁定到相關(guān)控件tbCj.DataBindings.Clear();tbCj.DataBindings.Add("Text",sCBindingSource,"score");}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?yàn)?+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}}privatevoidbutSave_Click(objectsender,EventArgse){stringsql;sql="updateSCsetscore='"+tbCj.Text+"'wheresno="+((DataRowView)sCBindingSource.Current)["sno"].ToString();SqlConnectioncnn=newSqlConnection("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");SqlCommandcmd=newSqlCommand(sql,cnn);try{cnn.Open();//翻開(kāi)連接cmd.ExecuteNonQuery();MessageBox.Show("數(shù)據(jù)保存成功","系統(tǒng)提示:");}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?yàn)?+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}finally{if(cnn.State==ConnectionState.Open)cnn.Close();//關(guān)閉連接}}}}完成后的界面效果如圖4.3所示圖4.3教師登陸界面4.4學(xué)生登陸界面設(shè)計(jì)1.首先翻開(kāi)VisualStudio2005。2.新建一個(gè)工程,工程名為:StudentLogin3.在窗體上放置數(shù)據(jù)顯示工具DataGridView1、DataGridView24.設(shè)置DataGridView1和DataGridView2任務(wù),在選擇數(shù)據(jù)源中,選擇添加工程數(shù)據(jù)源,根據(jù)數(shù)據(jù)源配置向?qū)?lái)添加,和數(shù)據(jù)庫(kù)名為myd中的學(xué)生表連接起來(lái),添加成功時(shí),選擇數(shù)據(jù)源為courseBindingSource和sCBindingSource。5.在窗體上放置GroupBox組件GroupBox1,RadioButton組件RadioButton1、RadioButton2、RadioButton3、RadioButton4、RadioButton5,Label組件Label1、Label2、Label3,Button組件Button1、Button2、Button3、Button4、Button5,TextBox組件TextBox1到TextBox46.設(shè)置GroupBox的屬性中的Text:GroupBox1的Text中輸入:查詢(xún)條件。7.設(shè)置Button的屬性中的Text:Button1到Button5的Text中分別輸入:確認(rèn)、返回、選中此課、退了此課、確定。8.設(shè)置Button的屬性中的Name:確認(rèn)、返回、選中此課、退了此課、確定的Name中分別輸入:btnOK、btnCancel、butXzck、butTlck、butOK2。9.設(shè)置Label的屬性中的Text:Label1到Label3的Text中分別輸入:課程代碼、輸入自己的學(xué)號(hào)、輸入自己的學(xué)號(hào)查找自己所選的課程和成績(jī)。10.設(shè)置RadioButton的屬性中的Name:RadioButton1到RadioButton5的Name中分別輸入:rbKcdm、rbKcmc、rbXf、rbKkx、rbRkls。11.設(shè)置RadioButton的屬性中的Text:RadioButton1到RadioButton3的Text中分別輸入:課程代碼、課程名稱(chēng)、學(xué)分、開(kāi)課系、任課老師。12.設(shè)置RadioButton1的屬性中的checked設(shè)置為T(mén)rue。13.設(shè)置TextBox的屬性中的Name:TextBox1到TextBox4的Name中分別輸入:tbSearch、tbNo、tbsno、tbSearch2。14.分別雙擊確認(rèn)、確認(rèn)、返回、選中此課、退了此課、確定切換到代碼窗口,輸入代碼,代碼如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespacemyd{publicpartialclassStudentLogin:Form{publicStudentLogin(){InitializeComponent();}privateboolInsert_flag=false;privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse){Insert_flag=false;}privatevoidStudentLogin_Load(objectsender,EventArgse){this.courseTableAdapter.Fill(this.mydDataSet5.course);}privatevoidbtnOK_Click(objectsender,EventArgse){if(tbSearch.Text.Length<=0){MessageBox.Show("查詢(xún)條件不能為空","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}inti;if(rbXf.Checked&&int.TryParse(tbSearch.Text,outi)){if(tbSearch.Text.Length<=0){MessageBox.Show("學(xué)分必需為數(shù)字","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}}SqlConnectioncnn=newSqlConnection("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");SqlCommandcmd=newSqlCommand();cmd.CommandText="Course_Info_Search";cmd.Parameters.Add("@SearchType",SqlDbType.Decimal);cmd.Parameters.Add("@SearchText",SqlDbType.VarChar,50);if(rbKcdm.Checked)i=0;elseif(rbKcmc.Checked)i=1;elseif(rbXf.Checked)i=2;elseif(rbKkx.Checked)i=3;elsei=4;cmd.Parameters["@SearchType"].Value=i;cmd.Parameters["@SearchText"].Value=tbSearch.Text.Trim();cmd.CommandType=CommandType.StoredProcedure;cmd.Connection=cnn;SqlDataAdaptersda=newSqlDataAdapter(cmd);try{DataSetds=newDataSet();sda.Fill(ds);//填充數(shù)據(jù)集courseBindingSource.DataSource=ds.Tables[0];//將數(shù)據(jù)集顯示出來(lái)//把查詢(xún)出來(lái)的數(shù)據(jù)綁定到相關(guān)控件tbNo.DataBindings.Clear();tbNo.DataBindings.Add("Text",courseBindingSource,"cno");if(ds.Tables[0].Rows.Count<=0)Insert_flag=true;}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?yàn)?+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}}privatevoidbtnCancel_Click(objectsender,EventArgse){Close();}privatevoidbutXzck_Click(objectsender,EventArgse){stringsql;sql="InsertintoSC(sno,cno)values('"+tbsno.Text+"','"+tbNo.Text+"')";SqlConnectioncnn=newSqlConnection("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");SqlCommandcmd=newSqlCommand(sql,cnn);try{cnn.Open();//翻開(kāi)連接cmd.ExecuteNonQuery();MessageBox.Show("數(shù)據(jù)保存成功","系統(tǒng)提示:");}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?yàn)?+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}finally{if(cnn.State==ConnectionState.Open)cnn.Close();//關(guān)閉連接}}privatevoidbutTlck_Click(objectsender,EventArgse){stringsql;sql="deletefromSCwherecno='"+tbNo.Text+"'";SqlConnectioncnn=newSqlConnection("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");SqlCommandcmd=newSqlCommand(sql,cnn);try{cnn.Open();//翻開(kāi)連接cmd.ExecuteNonQuery();MessageBox.Show("數(shù)據(jù)刪除成功","系統(tǒng)提示:");}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?yàn)?+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}finally{if(cnn.State==ConnectionState.Open)cnn.Close();//關(guān)閉連接}}privatevoidbutOK2_Click(objectsender,EventArgse){if(tbSearch2.Text.Length<=0){MessageBox.Show("查詢(xún)條件不能為空","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}inti;if(int.TryParse(tbSearch2.Text,outi)){if(tbSearch2.Text.Length<=0){MessageBox.Show("學(xué)號(hào)必需為數(shù)字","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}}SqlConnectioncnn=newSqlConnection("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");SqlCommandcmd=newSqlCommand();cmd.CommandText="SC_Info_Search";cmd.Parameters.Add("@SearchType",SqlDbType.Decimal);cmd.Parameters.Add("@SearchText",SqlDbType.VarChar,50);i=0;cmd.Parameters["@SearchType"].Value=i;cmd.Parameters["@SearchText"].Value=tbSearch2.Text.Trim();cmd.CommandType=CommandType.StoredProcedure;cmd.Connection=cnn;SqlDataAdaptersda=newSqlDataAdapter(cmd);try{DataSetds=newDataSet();sda.Fill(ds);//填充數(shù)據(jù)集sCBindingSource.DataSource=ds.Tables[0];//將數(shù)據(jù)集顯示出來(lái)}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?yàn)?+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}}}}完成后的界面效果如圖4.4所示。圖4.4學(xué)生登陸界面4.5.學(xué)生信息維護(hù)界面設(shè)計(jì)1.首先翻開(kāi)VisualStudio2005。2.新建一個(gè)工程,工程名為:StudentInfo3.在新建的工程StudentInfo中添加一個(gè)名為SqlHelper.cs的類(lèi),并翻開(kāi)此類(lèi),找到publicstaticstringCONNSTR="DataSource=.;InitialCatalog=myd;UserID=sa;Password=";并修改。4.在窗體上放置數(shù)據(jù)顯示工具DataGridView。5.設(shè)置DataGridView任務(wù),在選擇數(shù)據(jù)源中,選擇添加工程數(shù)據(jù)源,根據(jù)數(shù)據(jù)源配置向?qū)?lái)添加,和數(shù)據(jù)庫(kù)名為myd中的學(xué)生表連接起來(lái),添加成功時(shí),選擇數(shù)據(jù)源為studentBindingSource。6.在窗體上放置GroupBox組件GroupBox1,RadioButton組件RadioButton1、RadioButton2、RadioButton3,Label組件Label1、Label2、Label3、Label4、Label5、Label6,Button組件Button1、Button2、Button3,TextBox組件TextBox1到TextBox77.設(shè)置GroupBox的屬性中的Text:GroupBox1的Text中輸入:查詢(xún)條件。8.設(shè)置Button的屬性中的Text:Button1到Button5的Text中分別輸入:確認(rèn)、返回、新增、存盤(pán)、刪除。9.設(shè)置Button的屬性中的Name:確認(rèn)、返回、新增、存盤(pán)、刪除的Name中分別輸入:btnOK、btnCancel、butNew、btnSave、butDel。10.設(shè)置Label的屬性中的Text:Label1到Label6的Text中分別輸入:學(xué)號(hào)、姓名、所在系、性別、出生日期、密碼。11.設(shè)置RadioButton的屬性中的Name:RadioButton1到RadioButton3的Name中分別輸入:rbXh、rbXm、rbSzx。12.設(shè)置RadioButton的屬性中的Text:RadioButton1到RadioButton3的Text中分別輸入:學(xué)號(hào)、姓名、所在系。13.設(shè)置RadioButton1的屬性中的checked設(shè)置為T(mén)rue。14.設(shè)置TextBox的屬性中的Name:TextBox1到TextBox7的Name中分別輸入:tbSearch、tbXh、tbXm、tbSzx、tbXb、tbCsrq、tbMm。15.分別雙擊確認(rèn)、返回、新增、存盤(pán)、刪除切換到代碼窗口,輸入代碼,代碼如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespacemyd{publicpartialclassStudentInfo:Form{publicStudentInfo(){InitializeComponent();}privateboolInsert_flag=false;privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse){Insert_flag=false;}privatevoidStudentInfo_Load(objectsender,EventArgse){//TODO:這行代碼將數(shù)據(jù)加載到表“mydDataSet1.student〞中。您可以根據(jù)需要移動(dòng)或移除它。this.studentTableAdapter.Fill(this.mydDataSet1.student);}privatevoidbtnOK_Click(objectsender,EventArgse){if(tbSearch.Text.Length<=0){MessageBox.Show("查詢(xún)條件不能為空","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}inti;if(rbXh.Checked&&int.TryParse(tbSearch.Text,outi)){if(tbSearch.Text.Length<=0){MessageBox.Show("學(xué)號(hào)必需為數(shù)字","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}}SqlConnectioncnn=newSqlConnection("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");SqlCommandcmd=newSqlCommand();cmd.CommandText="Student_Info_Search";cmd.Parameters.Add("@SearchType",SqlDbType.Decimal);cmd.Parameters.Add("@SearchText",SqlDbType.VarChar,50);if(rbXh.Checked)i=0;elseif(rbXm.Checked)i=1;elsei=2;cmd.Parameters["@SearchType"].Value=i;cmd.Parameters["@SearchText"].Value=tbSearch.Text.Trim();cmd.CommandType=CommandType.StoredProcedure;cmd.Connection=cnn;SqlDataAdaptersda=newSqlDataAdapter(cmd);try{DataSetds=newDataSet();sda.Fill(ds);//填充數(shù)據(jù)集studentBindingSource.DataSource=ds.Tables[0];//將數(shù)據(jù)集顯示出來(lái)//把查詢(xún)出來(lái)的數(shù)據(jù)綁定到相關(guān)控件tbXh.DataBindings.Clear();tbXm.DataBindings.Clear();tbSzx.DataBindings.Clear();tbXb.DataBindings.Clear();tbCsrq.DataBindings.Clear();tbMm.DataBindings.Clear();tbXh.DataBindings.Add("Text",studentBindingSource,"sno");tbXm.DataBindings.Add("Text",studentBindingSource,"sname");tbSzx.DataBindings.Add("Text",studentBindingSource,"sdept");tbXb.DataBindings.Add("Text",studentBindingSource,"ssex");tbCsrq.DataBindings.Add("Text",studentBindingSource,"sdate");tbMm.DataBindings.Add("Text",studentBindingSource,"spas");if(ds.Tables[0].Rows.Count<=0)Insert_flag=true;}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?yàn)?+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}}privatevoidbtnCancel_Click(objectsender,EventArgse){Close();}privatevoidbutNew_Click(objectsender,EventArgse){tbXh.Text="";tbXm.Text="";tbSzx.Text="";tbXb.Text="";tbCsrq.Text="";tbMm.Text="";Insert_flag=true;}privatevoidbtnSave_Click(objectsender,EventArgse){stringsql;if(Insert_flag){sql="Insertintostudent(sno,sname,sdept,ssex,sdate,spas)values('"+tbXh.Text+"','"+tbXm.Text+"','"+tbSzx.Text+"','"+tbXb.Text+"','"+tbCsrq.Text+"','"+tbMm.Text+"')";}else{sql="updatestudentsetsno='"+tbXh.Text+"',sname='"+tbXm.Text+"',sdept='"+tbSzx.Text+"',ssex='"+tbXb.Text+"',sdate='"+tbCsrq.Text+"',spas='"+tbMm.Text+"'whereCID="+((DataRowView)studentBindingSource.Current)["CID"].ToString();}SqlConnectioncnn=newSqlConnection("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");SqlCommandcmd=newSqlCommand(sql,cnn);try{cnn.Open();//翻開(kāi)連接cmd.ExecuteNonQuery();MessageBox.Show("數(shù)據(jù)保存成功","系統(tǒng)提示:");}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?yàn)?+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}finally{if(cnn.State==ConnectionState.Open)cnn.Close();
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 做圍墻合同范例
- 印刷底合同范例
- 多個(gè)人合租合同范例
- 流動(dòng)資金合同范例
- 法人土地出租合同范例
- 出租野餐用具合同范例
- 2025珠海市勞動(dòng)合同標(biāo)準(zhǔn)版
- 人才轉(zhuǎn)讓合同范例范例
- 國(guó)家債務(wù)合同范例
- 完整版100以?xún)?nèi)加減法混合運(yùn)算4000道149
- 《招商銀行轉(zhuǎn)型》課件
- 靈新煤礦職業(yè)病危害告知制度范文(2篇)
- 2024年護(hù)校隊(duì)安全工作制度(3篇)
- 安全生產(chǎn)知識(shí)負(fù)責(zé)人復(fù)習(xí)題庫(kù)(附參考答案)
- 2024年安徽省廣播電視行業(yè)職業(yè)技能大賽(有線廣播電視機(jī)線員)考試題庫(kù)(含答案)
- 山東省濟(jì)南市濟(jì)陽(yáng)區(qū)三校聯(lián)考2024-2025學(xué)年八年級(jí)上學(xué)期12月月考語(yǔ)文試題
- 糖尿病酮酸癥中毒
- Unit 6 Food Lesson 1(說(shuō)課稿)-2024-2025學(xué)年人教精通版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 東北師大附屬中學(xué)2025屆高一物理第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- HSE(健康、安全與環(huán)境)計(jì)劃書(shū)
- GB/T 44570-2024塑料制品聚碳酸酯板材
評(píng)論
0/150
提交評(píng)論