




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
一.需求分析1.1設(shè)計任務(wù)本設(shè)計的任務(wù)是學(xué)生選課系統(tǒng)的設(shè)計與實現(xiàn),其中要實現(xiàn),課程信息管理〔錄入、查詢、維護〕;學(xué)生信息管理〔錄入、查詢、維護〕;教師信息管理〔錄入、查詢、維護〕;選課管理〔選課、退課、選課信息查詢〕;教師輸入成績管理〔查詢學(xué)生選的課并給學(xué)生成績〕。1.2系統(tǒng)性能需求實用性:為學(xué)生選課提供方便,可以有效的管理學(xué)生選課。先進性:產(chǎn)品的系統(tǒng)設(shè)計和開發(fā)應(yīng)緊跟著整個計算機開展潮流,采用當(dāng)時最先進的設(shè)計思想,利用最新的開發(fā)技術(shù)和開發(fā)工具。使系統(tǒng)能夠無論在功能設(shè)計上,還是在技術(shù)實現(xiàn)上,都處于同行業(yè)的領(lǐng)先地位。操作簡單:本系統(tǒng)應(yīng)該適用于不同水平的使用者,同時系統(tǒng)不應(yīng)太復(fù)雜和煩瑣,因此要求系統(tǒng)的操作盡可能簡單易行。適應(yīng)性:應(yīng)該能廣泛應(yīng)用于不同類型的大、中、小學(xué)院校,系統(tǒng)采用模塊化設(shè)計,用戶可以根據(jù)自己的實際情況自行組合,使系統(tǒng)在不同的硬件環(huán)境下都能得以應(yīng)用。代碼可讀性好:文中的代碼將盡可能簡潔,易懂。1.3可行性分析經(jīng)濟可行性:由于本系統(tǒng)的主要背景是課程設(shè)計,不注重直接的經(jīng)濟效益和其后的開展方向,只在注重自身水平和能力的提高,對自身的經(jīng)濟要求也不高,只要有一臺能運MicrosoftVisualStudio2023軟件的電腦便可,所以不用考慮到經(jīng)濟問題。技術(shù)可行性:本系統(tǒng)的開發(fā)使用數(shù)據(jù)庫,只需考慮安裝SQLsever數(shù)據(jù)庫的問題,在技術(shù)上要求并不高,因此本系統(tǒng)在技術(shù)上是可行的。運行可行性:本系統(tǒng)是一個學(xué)生選課系統(tǒng),所消耗的資源非常的小,現(xiàn)在一般的電腦無論是硬件還是軟件都能夠滿足條件,因此,本系統(tǒng)在運行上是可行的。綜上所述,本系統(tǒng)的設(shè)計與開發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的,因此,它在技術(shù)上是可行的。二.?dāng)?shù)據(jù)庫設(shè)計2.1實體關(guān)系圖學(xué)號學(xué)號性別性別學(xué)生表學(xué)生表班級班級出生日期期期姓名出生日期期期姓名圖2.11學(xué)生實體關(guān)系圖教師表所在系所授課程所在系所授課程教師名教師編號教師名教師編號圖2.12教師實體關(guān)系圖課程名稱課程名稱學(xué)分課程表開課系課程編號任課老師圖2.13課程實體關(guān)系圖教師編號教師編號課程名稱學(xué)分選課表教師姓名課程編號成績名班級學(xué)號姓名圖2.14選課實體關(guān)系圖2.2數(shù)據(jù)字典數(shù)據(jù)項是數(shù)據(jù)庫的關(guān)系中不可再分的數(shù)據(jù)單位,下表分別列出了數(shù)據(jù)的名稱、數(shù)據(jù)類型、長度、取值能否為空。利用SQLServer2000建立“學(xué)生選課〞數(shù)據(jù)庫,其根本表清單及表結(jié)構(gòu)描述如下:表2.1數(shù)據(jù)庫中用到的表:數(shù)據(jù)庫表名關(guān)系模式名稱備注Student學(xué)生表學(xué)生根本信息表Course課程表課程根本信息表Teach教師表教師根本信息Stu_Cour選課表學(xué)生選課信息表2.2Student根本情況數(shù)據(jù)表:字段名字段類型NotNull說明SnoCharPrimarykey學(xué)號SnamecharNotNull姓名Sclasschar班級Sageintr出生日期Ssexchar性別表2.3Teach根本情況數(shù)據(jù)表:字段名字段類型NotNull說明TnoCharPrimarykey教師編號TnamecharNotNull教師名Cnochar外部碼所授課程Tdeptchar所在系表2.4Course數(shù)據(jù)表:字段名字段類型約束控制說明Cnochar主鍵〔primarykey〕課程號Cnamecharnotnull課程名稱Ctimeint課時Ccreditint學(xué)分Cteachenchar任課老師表2.5Stu_cour情況數(shù)據(jù)表:字段名字段類型約束控制說明Cnochar外部鍵課程編號Snochar外部鍵學(xué)號Snamechar姓名Sclasschar班級SCgradechar成績Tnamechar教師名Tnochar教師編號Cnamechar課程名稱Ccreditint成績Ccreditint學(xué)分三.概要設(shè)計3.1系統(tǒng)總體功能根據(jù)本設(shè)計的要求可以得到如圖3-1所示的系統(tǒng)功能圖。學(xué)生選課系統(tǒng)學(xué)生選課系統(tǒng)用戶登錄用戶登錄學(xué)生用戶管理員教師用戶學(xué)生用戶管理員教師用戶個人信息選課結(jié)果選課列表選課要求刪除修改瀏覽添加個人信息刪除修改瀏覽個人信息選課結(jié)果選課列表選課要求刪除修改瀏覽添加個人信息刪除修改瀏覽退出登錄退出登錄圖3-1系統(tǒng)功能圖3.2系統(tǒng)功能模塊設(shè)計本系統(tǒng)需要完成的功能主要有:〔1〕有關(guān)學(xué)生信息的輸入,包括輸入學(xué)生根本信息、所選課程?!?〕學(xué)生信息的查詢、修改、刪除?!?〕課程管理信息的添加、修改、刪除和瀏覽等?!?〕學(xué)生選課管理信息的查詢、添加、修改、刪除?!?〕學(xué)生實現(xiàn)選擇課程和退選課程的功能?!?〕教師實現(xiàn)查詢學(xué)生選的課并給學(xué)生成績。四.詳細設(shè)計4.1登陸界面的設(shè)計登錄模塊提供用戶登錄界面,用戶輸入正確的用戶名和密碼后,那么可進入系統(tǒng)主窗口〔即導(dǎo)航頁面〕,從而可以選擇進入相應(yīng)的子系統(tǒng)。在系統(tǒng)登錄界面中,單擊【確定】按鈕驗證用戶名和用戶密碼,假設(shè)正確那么進入系統(tǒng)主界面;否那么彈出錯誤提示,并等待用戶的重新輸入。單擊【取消】按鈕那么關(guān)閉登錄界面,退出系統(tǒng)。首先翻開VisualStudio2023,新建一個Windows應(yīng)用程序,命名為“學(xué)生選課系統(tǒng)〞,再為應(yīng)用程序添加一個窗體。然后在窗體適宜位置添加所需要的組件并設(shè)置相應(yīng)屬性。接下來編寫登錄模塊的代碼,局部代碼如下所示。stringLJ=@"server=.;database=myd;uid=sa;pwd=";//建立連接SqlConnectionconn=newSqlConnection(LJ);conn.Open();//讀取所輸入的用戶名和密碼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)過期,請聯(lián)系開發(fā)商!","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);Close();//判斷是否存在輸入的用戶else{if(!datar.HasRows){MessageBox.Show("用戶名不存在,請重新輸入!");tbName.Focus();return;}/讀取數(shù)據(jù)庫的內(nèi)容,并與輸入的進行比擬;while(datar.Read()){//判斷用戶輸入是否正確if(datar["adminpas"].ToString().Trim()!=tbPas.Text.Trim()){MessageBox.Show("用戶密碼不正確,請重新輸入!");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)過期,請聯(lián)系開發(fā)商!","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);Close();}//判斷是否存在輸入的用戶else{if(!datar.HasRows){MessageBox.Show("用戶名不存在,請重新輸入!");tbName.Focus();return;}//讀取數(shù)據(jù)庫的內(nèi)容,并與輸入的進行比擬;while(datar.Read()){//判斷用戶輸入是否正確if(datar["spas"].ToString().Trim()!=tbPas.Text.Trim()){MessageBox.Show("用戶密碼不正確,請重新輸入!");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)過期,請聯(lián)系開發(fā)商!","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);Close();}//判斷是否存在輸入的用戶else{if(!datar.HasRows){MessageBox.Show("用戶名不存在,請重新輸入!");tbName.Focus();return;}//讀取數(shù)據(jù)庫的內(nèi)容,并與輸入的進行比擬;while(datar.Read()){//判斷用戶輸入是否正確if(datar["tpas"].ToString().Trim()!=tbPas.Text.Trim()){MessageBox.Show("用戶密碼不正確,請重新輸入!");tbPas.Focus();return;}else{TeacherLoginf4=newTeacherLogin();f4.ShowDialog();Close();}}}}完成后的界面效果如圖4.1所示圖4.1登陸界面4.2管理員登陸界面設(shè)計按照以上步驟設(shè)計一個管理員登陸界面如圖4.2所示。圖4.2管理員登陸界面4.3教師登陸界面設(shè)計首先翻開VisualStudio2023,新建一個Windows應(yīng)用程序,再為應(yīng)用程序添加一個窗體。然后在窗體適宜位置添加所需要的組件并設(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("查詢條件不能為空","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}inti;if(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="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ù)集顯示出來//把查詢出來的數(shù)據(jù)綁定到相關(guān)控件tbCj.DataBindings.Clear();tbCj.DataBindings.Add("Text",sCBindingSource,"score");}catch(Exceptionex){MessageBox.Show("出現(xià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();//翻開連接cmd.ExecuteNonQuery();MessageBox.Show("數(shù)據(jù)保存成功","系統(tǒng)提示:");}catch(Exceptionex){MessageBox.Show("出現(xià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è)計1.首先翻開VisualStudio2005。2.新建一個工程,工程名為:StudentLogin3.在窗體上放置數(shù)據(jù)顯示工具DataGridView1、DataGridView24.設(shè)置DataGridView1和DataGridView2任務(wù),在選擇數(shù)據(jù)源中,選擇添加工程數(shù)據(jù)源,根據(jù)數(shù)據(jù)源配置向?qū)硖砑?,和?shù)據(jù)庫名為myd中的學(xué)生表連接起來,添加成功時,選擇數(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中輸入:查詢條件。7.設(shè)置Button的屬性中的Text:Button1到Button5的Text中分別輸入:確認、返回、選中此課、退了此課、確定。8.設(shè)置Button的屬性中的Name:確認、返回、選中此課、退了此課、確定的Name中分別輸入:btnOK、btnCancel、butXzck、butTlck、butOK2。9.設(shè)置Label的屬性中的Text:Label1到Label3的Text中分別輸入:課程代碼、輸入自己的學(xué)號、輸入自己的學(xué)號查找自己所選的課程和成績。10.設(shè)置RadioButton的屬性中的Name:RadioButton1到RadioButton5的Name中分別輸入:rbKcdm、rbKcmc、rbXf、rbKkx、rbRkls。11.設(shè)置RadioButton的屬性中的Text:RadioButton1到RadioButton3的Text中分別輸入:課程代碼、課程名稱、學(xué)分、開課系、任課老師。12.設(shè)置RadioButton1的屬性中的checked設(shè)置為True。13.設(shè)置TextBox的屬性中的Name:TextBox1到TextBox4的Name中分別輸入:tbSearch、tbNo、tbsno、tbSearch2。14.分別雙擊確認、確認、返回、選中此課、退了此課、確定切換到代碼窗口,輸入代碼,代碼如下: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("查詢條件不能為空","系統(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ù)集顯示出來//把查詢出來的數(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)錯誤,錯誤原因為"+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();//翻開連接cmd.ExecuteNonQuery();MessageBox.Show("數(shù)據(jù)保存成功","系統(tǒng)提示:");}catch(Exceptionex){MessageBox.Show("出現(xià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();//翻開連接cmd.ExecuteNonQuery();MessageBox.Show("數(shù)據(jù)刪除成功","系統(tǒng)提示:");}catch(Exceptionex){MessageBox.Show("出現(xià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("查詢條件不能為空","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}inti;if(int.TryParse(tbSearch2.Text,outi)){if(tbSearch2.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="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ù)集顯示出來}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯誤,錯誤原因為"+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}}}}完成后的界面效果如圖4.4所示。圖4.4學(xué)生登陸界面4.5.學(xué)生信息維護界面設(shè)計1.首先翻開VisualStudio2005。2.新建一個工程,工程名為:StudentInfo3.在新建的工程StudentInfo中添加一個名為SqlHelper.cs的類,并翻開此類,找到publicstaticstringCONNSTR="DataSource=.;InitialCatalog=myd;UserID=sa;Password=";并修改。4.在窗體上放置數(shù)據(jù)顯示工具DataGridView。5.設(shè)置DataGridView任務(wù),在選擇數(shù)據(jù)源中,選擇添加工程數(shù)據(jù)源,根據(jù)數(shù)據(jù)源配置向?qū)硖砑樱蛿?shù)據(jù)庫名為myd中的學(xué)生表連接起來,添加成功時,選擇數(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中輸入:查詢條件。8.設(shè)置Button的屬性中的Text:Button1到Button5的Text中分別輸入:確認、返回、新增、存盤、刪除。9.設(shè)置Button的屬性中的Name:確認、返回、新增、存盤、刪除的Name中分別輸入:btnOK、btnCancel、butNew、btnSave、butDel。10.設(shè)置Label的屬性中的Text:Label1到Label6的Text中分別輸入:學(xué)號、姓名、所在系、性別、出生日期、密碼。11.設(shè)置RadioButton的屬性中的Name:RadioButton1到RadioButton3的Name中分別輸入:rbXh、rbXm、rbSzx。12.設(shè)置RadioButton的屬性中的Text:RadioButton1到RadioButton3的Text中分別輸入:學(xué)號、姓名、所在系。13.設(shè)置RadioButton1的屬性中的checked設(shè)置為True。14.設(shè)置TextBox的屬性中的Name:TextBox1到TextBox7的Name中分別輸入:tbSearch、tbXh、tbXm、tbSzx、tbXb、tbCsrq、tbMm。15.分別雙擊確認、返回、新增、存盤、刪除切換到代碼窗口,輸入代碼,代碼如下: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ù)需要移動或移除它。this.studentTableAdapter.Fill(this.mydDataSet1.student);}privatevoidbtnOK_Click(objectsender,EventArgse){if(tbSearch.Text.Length<=0){MessageBox.Show("查詢條件不能為空","系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}inti;if(rbXh.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="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ù)集顯示出來//把查詢出來的數(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)錯誤,錯誤原因為"+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();//翻開連接cmd.ExecuteNonQuery();MessageBox.Show("數(shù)據(jù)保存成功","系統(tǒng)提示:");}catch(Exceptionex){MessageBox.Show("出現(xiàn)錯誤,錯誤原因為"+ex.Message,"系統(tǒng)提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);}finally{if(cnn.State==ConnectionState.Open)cnn.Close();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北郵電子商務(wù)試題及答案
- 2025年護考聽力測試題及答案
- 2025年農(nóng)民上崗考試題及答案
- 2025年國龍醫(yī)院面試題及答案
- 2025年邏輯錯位測試題及答案
- 2025年函授教育考試題及答案
- 2025年高中數(shù)學(xué)培優(yōu)試題及答案
- 2025年公民素質(zhì)考試試題及答案
- 除了經(jīng)典邁克爾遜白光干涉外Mirau型干涉(米勞干涉)的測量原理
- 2025年重藥控股面試題及答案
- 包裝結(jié)構(gòu)設(shè)計-管式折疊紙盒
- 2024年江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 中國保險行業(yè)協(xié)會官方-2023年度商業(yè)健康保險經(jīng)營數(shù)據(jù)分析報告-2024年3月
- 注射泵操作評分標(biāo)準(zhǔn)
- 新人教版五年級PEP英語下冊單詞表
- 動力國際項目詳情
- 免拆底模鋼筋桁架樓承板圖集
- 2023-2024學(xué)年成都市金牛區(qū)中考英語二診試題(含答案)
- 2024年徐州生物工程職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 特種設(shè)備“日管控、周排查、月調(diào)度”表格
- 低壓電纜接線培訓(xùn)課件
評論
0/150
提交評論