




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)課題 班級(jí) 學(xué)號(hào) 姓名 指導(dǎo)教師 時(shí)間:2015.6.152015.6.261 系統(tǒng)需求分析1.1系統(tǒng)功能分析員工培訓(xùn)系統(tǒng)需要實(shí)現(xiàn)的主要功能包括:l 企業(yè)總體培訓(xùn)課程的設(shè)置和安排。l 允許員工根據(jù)自己的情況選擇合適的課程和上課時(shí)間。l 對(duì)選課結(jié)果進(jìn)行統(tǒng)計(jì)報(bào)表。允許員工對(duì)最后選課結(jié)果的查詢。l 培訓(xùn)考核成績(jī)的輸入和查詢。l 員工培訓(xùn)效果的綜合報(bào)表。l 員工個(gè)人信息的修改。圖1、員工培訓(xùn)管理系統(tǒng)功能模塊圖1.2系統(tǒng)功能模塊設(shè)計(jì)(劃分)本系統(tǒng)涉及到員工和培訓(xùn)管理部門之間的交流,因此需要根據(jù)用戶的不同分成兩大功能模塊。這兩個(gè)模塊的功能和使用的權(quán)限完全不同。本系統(tǒng)功能模塊如圖1所示。1
2、.3與其它系統(tǒng)的關(guān)系圖2、培訓(xùn)管理數(shù)據(jù)流程圖員工培訓(xùn)系統(tǒng)可以為員工素質(zhì)技能的評(píng)價(jià)提供可靠的依據(jù),是職務(wù)評(píng)定的一個(gè)參考信息源。系統(tǒng)本身需要用到人事管理系統(tǒng)中的員工基本信息和部門信息等輔助資料,這些數(shù)據(jù)可以通過(guò)數(shù)據(jù)庫(kù)直接讀取。1.4數(shù)據(jù)流程圖員工培訓(xùn)管理系統(tǒng)的數(shù)據(jù)流程如圖2所示。2 數(shù)據(jù)庫(kù)設(shè)計(jì)2.1數(shù)據(jù)庫(kù)需求分析根據(jù)系統(tǒng)數(shù)據(jù)流程圖,我們可以列出以下系統(tǒng)所需的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):l 課程設(shè)置:編號(hào)、名稱、簡(jiǎn)介、所用教材、上課地點(diǎn)、人數(shù)、上課時(shí)間l 選課結(jié)果:記錄編號(hào)、員工、課程、考核成績(jī)、評(píng)價(jià)、考核日期。所需的外部數(shù)據(jù)支持:l 人員信息:?jiǎn)T工號(hào)、密碼、權(quán)限、姓名、部門、當(dāng)前狀態(tài)等。l 部門設(shè)置:部門編
3、號(hào)、名稱等。2.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)圖3是本系統(tǒng)所需數(shù)據(jù)的E-R模型圖。圖3、培訓(xùn)管理E-R圖2.3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)E-R圖和數(shù)據(jù)庫(kù)需求分析,培訓(xùn)管理系統(tǒng)需要?jiǎng)?chuàng)建2個(gè)主要的數(shù)據(jù)表:課程設(shè)置表和培訓(xùn)安排表。對(duì)應(yīng)這兩個(gè)表中的個(gè)別代碼字段,又需要?jiǎng)?chuàng)建2個(gè)代碼表:課程狀態(tài)代碼表和考核評(píng)價(jià)代碼表。這4個(gè)數(shù)據(jù)表的結(jié)構(gòu)如表1至表4所示。員工信息和部門信息作為外部數(shù)據(jù)支持可以使用人事管理系統(tǒng)中建立的數(shù)據(jù)表,如表5和表6所示。表1 COURSE 課程設(shè)置表字段名數(shù)據(jù)類型是否可空說(shuō)明ID課程編號(hào)NAME課程名TEACHER任課教師(外部關(guān)鍵字PERSON)INTRO課程簡(jiǎn)介BOOK所用教材CLASSROOM
4、上課地點(diǎn)NUMBER課程上限人數(shù)CLASSTIME開課時(shí)間STATE狀態(tài)(外部關(guān)鍵字COURSE_STATE)表2 TRAINING_PLAN培訓(xùn)安排表字段名數(shù)據(jù)類型是否可空說(shuō)明ID編號(hào)PERSON員工(外部關(guān)鍵字PERSON)COURSE課程SCORE成績(jī)APPRAISEMENT評(píng)價(jià)(外部關(guān)鍵字APPRAISEMENT)EXAM_DATA考核日期表3 COURSE_STATE課程狀態(tài)代碼表字段名數(shù)據(jù)類型是否可空說(shuō)明CODE狀態(tài)代碼DESCRIPTION描述表4 APPRISEMENT考核評(píng)價(jià)代碼表字段名數(shù)據(jù)類型是否可空說(shuō)明CODE評(píng)價(jià)代碼DESCRIPTION描述表5 PERSON員工個(gè)人信
5、息表字段名數(shù)據(jù)類型是否可空說(shuō)明ID員工號(hào)(主關(guān)鍵字)PASSWD密碼AUTHORITY用戶權(quán)限NAME姓名SEX性別BIRTHDAY生日DEPARTMENT所在部門JOB職務(wù)EDU_LEBEL受教育程度SPECIATY專業(yè)技能ADDRESS家庭住址TEL聯(lián)系電話EMAIL電子信箱STATE當(dāng)前狀態(tài)(T-員工,F(xiàn)-非員工)REMARK備注表6 DEPARTMENT部門信息表字段名數(shù)據(jù)類型是否可空說(shuō)明ID部門編號(hào)NAME部門名稱MANAGER部門經(jīng)理INTRO簡(jiǎn)介2.4數(shù)據(jù)庫(kù)的建立2.4.1數(shù)據(jù)庫(kù)的建立2.4.2初始數(shù)據(jù)的輸入本系統(tǒng)中,初始數(shù)據(jù)包括課程狀態(tài)代碼和評(píng)價(jià)代碼,如表7至表8所示。表7 課
6、程狀態(tài)代碼代碼說(shuō)明0選課中1進(jìn)行中2已結(jié)束表8 考核評(píng)價(jià)代碼代碼說(shuō)明0未考核1不及格2及格3良好4優(yōu)秀(以下各部分請(qǐng)?jiān)O(shè)計(jì)者完成)。3 各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)3.1功能說(shuō)明本管理系統(tǒng)主要分為兩大部分:培訓(xùn)管理應(yīng)用程序和學(xué)員選課應(yīng)用程序。培訓(xùn)管理應(yīng)用程序主要用于培訓(xùn)中心的管理人員對(duì)培訓(xùn)課程和培訓(xùn)情況進(jìn)行維護(hù)。此應(yīng)用程序主要包括四項(xiàng)功能:課程設(shè)置、選課結(jié)果查詢修改、成績(jī)輸入、培訓(xùn)成績(jī)統(tǒng)計(jì)報(bào)表。另外,系統(tǒng)需要有登錄窗口(用于權(quán)限認(rèn)證)和導(dǎo)航窗口(用于連接各項(xiàng)功能)。學(xué)員選課應(yīng)用程序包括個(gè)人信息修改、選課和成績(jī)查詢?nèi)?xiàng)功能。(一)培訓(xùn)管理管理應(yīng)用程序功能說(shuō)明(二)學(xué)員選課應(yīng)用程序功能說(shuō)明3.2用戶界面設(shè)
7、計(jì)完成數(shù)據(jù)庫(kù)創(chuàng)建和功能說(shuō)明以后,我們可以進(jìn)行下一步工作,既設(shè)計(jì)用戶界面。1、培訓(xùn)管理應(yīng)用程序登錄窗體的創(chuàng)建2、培訓(xùn)管理應(yīng)用程序主窗體的創(chuàng)建3、課程設(shè)置窗體的創(chuàng)建4、選課結(jié)果查詢窗體的創(chuàng)建5、學(xué)員名單報(bào)表窗體的創(chuàng)建6、考核評(píng)定結(jié)果窗體的創(chuàng)建7、培訓(xùn)統(tǒng)計(jì)窗體的創(chuàng)建8、培訓(xùn)成績(jī)報(bào)表窗體的創(chuàng)建9、學(xué)員選課客戶端界面的創(chuàng)建3.3各功能模塊的實(shí)現(xiàn)1、培訓(xùn)管理應(yīng)用程序數(shù)據(jù)模塊的創(chuàng)建2、培訓(xùn)管理應(yīng)用程序登錄程序的實(shí)現(xiàn)3、課程設(shè)置模塊的實(shí)現(xiàn)4、選課結(jié)果查詢的實(shí)現(xiàn)5、學(xué)員名單報(bào)表的實(shí)現(xiàn)6、考核評(píng)定結(jié)果的實(shí)現(xiàn)7、培訓(xùn)統(tǒng)計(jì)的實(shí)現(xiàn)8、培訓(xùn)成績(jī)報(bào)表的實(shí)現(xiàn)9、學(xué)員選課客戶端應(yīng)用程序的創(chuàng)建4 系統(tǒng)實(shí)現(xiàn)基本方法:通過(guò)一個(gè)ado
8、控件與數(shù)據(jù)庫(kù)進(jìn)行連接,一個(gè)datagrid控件顯示表信息。1 edit控件對(duì)應(yīng)表的字段。button按鈕對(duì)應(yīng)“查詢”、“更新”、“刪除”和“添加”。4.1登陸界面:/登陸按鈕功能/*1.首先連接數(shù)據(jù)庫(kù)2.通過(guò)sql語(yǔ)句獲得PERSON表的信息,得到與輸入賬號(hào)名相對(duì)應(yīng)的賬號(hào)密碼(sql.Format("select * from person where P_ID = '%s' and P_PASSWD = '%s'",this->m_id,this->m_password);)3.判斷輸入的密碼與從數(shù)據(jù)庫(kù)中得到的密碼是否相一致4.
9、 得到與輸入賬號(hào)名相對(duì)應(yīng)的賬號(hào)權(quán)限5.判斷用戶的身份,選擇進(jìn)入不同的功能界面*/void CEmploymentDlg:OnButton1() this->UpdateData(true);/連接數(shù)據(jù)庫(kù)UpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);trym_pConnection.CreateInstance("ADODB.Connection");_bstr_t strConn="Provider=SQLOLEDB.1;Integrated Security=SSPI;P
10、ersist Security Info=False;Initial Catalog=Employee training management system;Data Source=520-002"m_pConnection->Open(strConn,"","",adModeUnknown);catch(_com_error e):CoUninitialize();AfxMessageBox(e.ErrorMessage();return ;/定義sql查詢CString sql;variant_t RecordsAffected; _
11、RecordsetPtr m_pRecordset; sql.Format("select * from person where P_ID = '%s' and P_PASSWD = '%s'",this->m_id,this->m_password);/執(zhí)行SQL查詢m_pRecordset = m_pConnection->Execute(_bstr_t)sql,&RecordsAffected,adCmdText);/如果找到if(!m_pRecordset->adoEOF) RecordsAffect
12、ed=m_pRecordset->GetCollect("p_authority");CString authority=(LPCSTR)_bstr_t(RecordsAffected);/int i=(int)RecordsAffected.iVal;if(authority="employee")this->ShowWindow(SW_HIDE);id=this->m_id;employer dlg;dlg.DoModal();this->ShowWindow(SW_SHOW);else this->ShowWindow
13、(SW_HIDE);teacher dlg;dlg.DoModal();this->ShowWindow(SW_SHOW);else MessageBox("用戶名或密碼有誤");/退出按鈕功能,直接調(diào)用exit(0)退出整個(gè)程序void CEmploymentDlg:OnButton2() exit(0);/*1.這個(gè)界面主要是有三個(gè)按鈕,用來(lái)選擇進(jìn)入不同的功能區(qū)*/void employer:OnButton1() this->ShowWindow(SW_HIDE);/當(dāng)前界面隱藏employer_chioce dlg; /需要添加該C*Dlg.h頭文件,否
14、則編譯通不過(guò)dlg.DoModal();this->ShowWindow(SW_SHOW);void employer:OnButton2() this->ShowWindow(SW_HIDE);/當(dāng)前界面隱藏employer_score dlg; /需要添加該C*Dlg.h頭文件,否則編譯通不過(guò)dlg.DoModal();this->ShowWindow(SW_SHOW);void employer:OnButton3() this->ShowWindow(SW_HIDE);/當(dāng)前界面隱藏employer_information dlg; /需要添加該C*Dlg.h頭
15、文件,否則編譯通不過(guò)dlg.DoModal();this->ShowWindow(SW_SHOW);void employer:OnButton4() exit(0);/*點(diǎn)擊顯示個(gè)人課程,會(huì)顯示出個(gè)人課程這部份功能主要有:1.查找2.增加3.刪除 */增加選擇課程/*1.連接數(shù)據(jù)庫(kù)2.定義sql1,sql2用于獲得信息,和添加課程sql.Format("select * from course where C_ID = '%s'",this->m_add_id);sql2.Format("SELECT C_NAME,COUNT(C_I
16、D) as num FROM TRAINING_PLAN,PERSON,COURSE WHERE P_ID=T_PERSON and C_ID=T_COURSE GROUP BY C_NAME");3.差錯(cuò)控制選課人數(shù)與選課上限人數(shù)4.其余的功能和增加功能只是sql語(yǔ)句的差別,就不詳細(xì)描述了*/void employer_chioce:OnButton1() UpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);trym_pConnection.CreateInstance("ADODB.Conn
17、ection");_bstr_tstrConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Employee training management system;Data Source=520-002"m_pConnection->Open(strConn,"","",adModeUnknown); catch(_com_error e):CoUninitialize();Afx
18、MessageBox(e.ErrorMessage();return;/定義sql查詢CString sql,sql2;variant_t RecordsAffected,RecordsAffected2;_RecordsetPtr m_pRecordset,m_pRecordset2; sql.Format("select * from course where C_ID = '%s'",this->m_add_id);sql2.Format("SELECT C_NAME,COUNT(C_ID) as num FROM TRAINING_P
19、LAN,PERSON,COURSE WHERE P_ID=T_PERSON and C_ID=T_COURSE GROUP BY C_NAME");/執(zhí)行SQL查詢m_pRecordset = m_pConnection->Execute(_bstr_t)sql,&RecordsAffected,adCmdText);m_pRecordset2 = m_pConnection->Execute(_bstr_t)sql2,&RecordsAffected2,adCmdText);RecordsAffected=m_pRecordset->GetColl
20、ect("C_NUMBER");CString number=(LPCSTR)_bstr_t(RecordsAffected);RecordsAffected2=m_pRecordset2->GetCollect("num");CString num=(LPCSTR)_bstr_t(RecordsAffected2);if(num<=number)_variant_t ra;_bstr_t strAdd="INSERT INTO training_plan VALUES("strAdd=strAdd+id+",&
21、quot;strAdd=strAdd+m_add_id+",0,0,'20150909')"m_pConnection->Execute(strAdd,&ra,adCmdText);m_pConnection->Close();/以下顯示當(dāng)前數(shù)據(jù)CString strSQL="SELECT P_NAME,C_ID,C_NAME,C_TEACHER,C_CLASSROOM,C_CLASSTIME,C_STATE,T_EXAM_DATE FROM TRAINING_PLAN,PERSON,COURSE,APPRISEMENT WHE
22、RE P_ID=T_PERSON AND C_ID=T_COURSE AND A_CODE=T_APPRISEMENT and T_PERSON= "+id;m_adodc2.SetRecordSource(strSQL);m_adodc2.Refresh();m_datagrid2.ShowWindow(SW_SHOW);AfxMessageBox("選課成功");UpdateData(FALSE);else AfxMessageBox("選課失敗,選課人數(shù)已達(dá)到上限!");/顯示個(gè)人選擇課程void employer_chioce:OnBu
23、tton4() / TODO: Add your control notification handler code hereUpdateData(TRUE);CString tmpStr,strSQL="SELECT P_NAME,C_ID,C_NAME,C_TEACHER,C_CLASSROOM,C_CLASSTIME,C_STATE,T_EXAM_DATE FROM TRAINING_PLAN,PERSON,COURSE,APPRISEMENT WHERE P_ID=T_PERSON AND C_ID=T_COURSE AND A_CODE=T_APPRISEMENT and
24、T_PERSON= "+id;m_adodc2.SetRecordSource(strSQL);m_adodc2.Refresh();m_datagrid2.ShowWindow(SW_SHOW);UpdateData(FALSE);/刪除選擇課程void employer_chioce:OnButton2() / TODO: Add your control notification handler code hereUpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);trym_pConnection.
25、CreateInstance("ADODB.Connection");_bstr_tstrConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Employee training management system;Data Source=520-002"m_pConnection->Open(strConn,"","",adModeUnknown); catch(_co
26、m_error e):CoUninitialize();AfxMessageBox(e.ErrorMessage();return;/以下插入數(shù)據(jù)_variant_t ra;_bstr_t strAdd="delete from training_plan where t_person ="+id+" and t_course = "+m_delete_id+""/AfxMessageBox(strAdd); return;m_pConnection->Execute(strAdd,&ra,adCmdText);m_pC
27、onnection->Close();/以下顯示當(dāng)前數(shù)據(jù)CString tmpStr,strSQL="SELECT P_NAME,C_ID,C_NAME,C_TEACHER,C_CLASSROOM,C_CLASSTIME,C_STATE,T_EXAM_DATE FROM TRAINING_PLAN,PERSON,COURSE,APPRISEMENT WHERE P_ID=T_PERSON AND C_ID=T_COURSE AND A_CODE=T_APPRISEMENT and T_PERSON= "+id;m_adodc2.SetRecordSource(strS
28、QL);m_adodc2.Refresh();m_datagrid2.ShowWindow(SW_SHOW);AfxMessageBox("刪除課程成功");UpdateData(FALSE);/查找課程IDvoid employer_chioce:OnButton5() UpdateData(TRUE);CString str="select * from course where c_name like '%"+m_name+"%'"m_adodc1.SetRecordSource(str);m_adodc1.Re
29、fresh();UpdateData(FALSE);void employer_chioce:OnButton6() exit(0);void employer_chioce:OnButton7() this->ShowWindow(SW_HIDE);employer dlg;dlg.DoModal();this->ShowWindow(SW_SHOW);void employer_information:OnButton1() UpdateData(TRUE);CString strSQL="SELECT * from PERSON where P_ID= "
30、+id;m_adodc1.SetRecordSource(strSQL);m_adodc1.Refresh();m_datagrid1.ShowWindow(SW_SHOW);UpdateData(FALSE);void employer_information:OnButton2() MessageBox("更新個(gè)人信息成功!");UpdateData(TRUE);_variant_t ra;_bstr_t strAdd="UPDATE PERSON SET "strAdd=strAdd+" p_passwd = "+"&
31、#39;"+m_passwd+"',"strAdd=strAdd+" P_NAME = "+"'"+m_name+"',"strAdd=strAdd+" p_sex = "+"'"+m_sex+"',"strAdd=strAdd+" p_birahday = "+"'"+m_birahday+"',"strAdd=strAdd+&q
32、uot; p_edu_level = "+"'"+m_edu_level+"',"strAdd=strAdd+" p_speciaty = "+"'"+m_speciaty+"',"strAdd=strAdd+" p_address = "+"'"+m_address+"',"strAdd=strAdd+" p_tel = "+"'"
33、;+m_tel+"',"strAdd=strAdd+" p_email = "+"'"+m_email+"',"strAdd=strAdd+" p_remark = "+"'"+m_pemark+"'"strAdd=strAdd+" where"+" P_ID = "+id+""m_adodc1.SetRecordSource(strAdd);m_adodc
34、1.Refresh();MessageBox("更新個(gè)人信息成功!");UpdateData(FALSE);BEGIN_EVENTSINK_MAP(employer_information, CDialog) /AFX_EVENTSINK_MAP(employer_information)ON_EVENT(employer_information, IDC_DATAGRID1, -601 /* DblClick */, OnDblClickDatagrid1, VTS_NONE)/AFX_EVENTSINK_MAPEND_EVENTSINK_MAP()void employ
35、er_information:OnDblClickDatagrid1() UpdateData(TRUE);int ColNum = 2;CString colVal;CColumns cols; /要包含的文件頭COlumns.hCColumn col; /要包含的文件頭COlumn.hVARIANT v_ColNum,v_Value;cols = m_datagrid1.GetColumns(); /調(diào)用GetColumns 返回CDataGrid對(duì)應(yīng)的CColumns對(duì)象v_ColNum.vt = VT_I2;v_ColNum.iVal = 1; /設(shè)置列編號(hào)col = cols.Get
36、Item(v_ColNum);/根據(jù)列編號(hào)返回CColumn 對(duì)象v_Value = col.GetValue();/讀取列值m_passwd = v_Value.bstrVal;v_ColNum.iVal = 3;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_name = v_Value.bstrVal;v_ColNum.iVal = 4;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_sex = v_Value.bstrVal;v_ColNum.iVal = 5
37、;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_birahday = v_Value.bstrVal;v_ColNum.iVal = 8;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_edu_level = v_Value.bstrVal;v_ColNum.iVal = 9;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_speciaty = v_Value.bstrVal;v_ColNum.iVal
38、 = 10;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_address = v_Value.bstrVal;v_ColNum.iVal = 11;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_tel = v_Value.bstrVal;v_ColNum.iVal = 12;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_email = v_Value.bstrVal;v_ColNum.iVal =
39、14;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_pemark = v_Value.bstrVal;UpdateData(FALSE);void employer_information:OnButton4() this->ShowWindow(SW_HIDE);employer dlg;dlg.DoModal();this->ShowWindow(SW_SHOW);void employer_information:OnButton6() exit(0);void teacher:OnButton1() this
40、->ShowWindow(SW_HIDE);tercher_course dlg;dlg.DoModal();this->ShowWindow(SW_SHOW);void teacher:OnButton2() this->ShowWindow(SW_HIDE);tercher_score dlg;dlg.DoModal();this->ShowWindow(SW_SHOW);void teacher:OnButton3() this->ShowWindow(SW_HIDE);tercher_result dlg;dlg.DoModal();this->Sh
41、owWindow(SW_SHOW);void teacher:OnButton4() this->ShowWindow(SW_HIDE);tercher_all dlg;dlg.DoModal();this->ShowWindow(SW_SHOW);void teacher:OnButton5() exit(0);/新增void tercher_course:OnButton1() UpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);trym_pConnection.CreateInstance(&qu
42、ot;ADODB.Connection");_bstr_tstrConn="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Employee training management system;Data Source=520-002"m_pConnection->Open(strConn,"","",adModeUnknown);catch(_com_error e):CoUninitia
43、lize();AfxMessageBox(e.ErrorMessage();return;_variant_t ra;_bstr_t strAdd="INSERT INTO COURSE VALUES("strAdd=strAdd+m_c_id+","strAdd=strAdd+"'"+m_c_name+"',"strAdd=strAdd+"'"+m_c_teacher+"',"strAdd=strAdd+"'"+m
44、_c_intro+"',"strAdd=strAdd+"'"+m_c_book+"',"strAdd=strAdd+"'"+m_c_classroom+"',"strAdd=strAdd+"'"+m_c_number+"',"strAdd=strAdd+"'"+m_c_classtime+"',"strAdd=strAdd+"'
45、"+m_c_state+"');"/清空輸入框m_c_id=" "m_c_name=" "m_c_teacher=" "m_c_intro=" "m_c_book=" "m_c_classroom=" "m_c_number=" "m_c_classtime=" "m_c_state=" "m_pConnection->Execute(strAdd,&ra,adCm
46、dText);m_pConnection->Close();m_adodc1.SetRecordSource("select * from COURSE");m_adodc1.Refresh();UpdateData(FALSE);/修改void tercher_course:OnButton2() UpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);/在ADO操作中建議語(yǔ)句中要常用到try.catch()來(lái)捕獲錯(cuò)誤信息/因?yàn)樗袝r(shí)會(huì)經(jīng)常出現(xiàn)一些想不到的錯(cuò)誤trym_pConnection
47、.CreateInstance("ADODB.Connection");_bstr_tstrConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Employee training management system;Data Source=520-002"m_pConnection->Open(strConn,"","",adModeUnknown); catch(_c
48、om_error e):CoUninitialize();AfxMessageBox(e.ErrorMessage();return;/以下插入數(shù)據(jù)_variant_t ra;_bstr_t strAdd="UPDATE COURSE SET "strAdd=strAdd+" C_NAME = "+"'"+m_c_name+"',"strAdd=strAdd+" C_TEACHER = "+"'"+m_c_teacher+"',&qu
49、ot;strAdd=strAdd+" C_INTRO = "+"'"+m_c_intro+"',"strAdd=strAdd+" C_BOOK = "+"'"+m_c_book+"',"strAdd=strAdd+" C_CLASSROOM = "+"'"+m_c_classroom+"',"strAdd=strAdd+" C_NUMBER = "+
50、"'"+m_c_number+"',"strAdd=strAdd+" C_CLASSTIME = "+"'"+m_c_classtime+"',"strAdd=strAdd+" C_STATE = "+"'"+m_c_state+"'"strAdd=strAdd+" where"+" C_ID = "+m_c_id+""m_pCo
51、nnection->Execute(strAdd,&ra,adCmdText);m_pConnection->Close();/以下顯示當(dāng)前數(shù)據(jù)m_adodc1.SetRecordSource(" SELECT * FROM COURSE ");m_adodc1.Refresh();AfxMessageBox("成功更新數(shù)據(jù)");UpdateData(FALSE);/刪除void tercher_course:OnButton4() UpdateData(TRUE);_ConnectionPtr m_pConnection;:CoIn
52、itialize(NULL);trym_pConnection.CreateInstance("ADODB.Connection");_bstr_tstrConn="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Employee training management system;Data Source=520-002"m_pConnection->Open(strConn,"","&q
53、uot;,adModeUnknown);catch(_com_error e):CoUninitialize();AfxMessageBox(e.ErrorMessage();return ;_variant_t ra;_bstr_t strAdd="delete from COURSE where C_ID="strAdd=strAdd+m_c_id;m_pConnection->Execute(strAdd,&ra,adCmdText);m_pConnection->Close();m_adodc1.SetRecordSource("sel
54、ect * from COURSE");m_adodc1.Refresh();m_c_id=" "m_c_name=" "m_c_teacher=" "m_c_intro=" "m_c_book=" "m_c_classroom=" "m_c_number=" "m_c_classtime=" "m_c_state=" "UpdateData(FALSE);BEGIN_EVENTSINK_MAP(terch
55、er_course, CDialog) /AFX_EVENTSINK_MAP(tercher_course)ON_EVENT(tercher_course, IDC_DATAGRID1, -601 /* DblClick */, OnDblClickDatagrid1, VTS_NONE)/AFX_EVENTSINK_MAPEND_EVENTSINK_MAP()void tercher_course:OnDblClickDatagrid1() / TODO: Add your control notification handler code hereUpdateData(TRUE);int
56、ColNum = 2;CString colVal;CColumns cols; /要包含的文件頭COlumns.hCColumn col; /要包含的文件頭COlumn.hVARIANT v_ColNum,v_Value;cols = m_datagrid1.GetColumns(); /調(diào)用GetColumns 返回CDataGrid對(duì)應(yīng)的CColumns對(duì)象v_ColNum.vt = VT_I2;v_ColNum.iVal = 0;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_id = v_Value.bstrVal;
57、v_ColNum.iVal = 1;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_name = v_Value.bstrVal;v_ColNum.iVal = 2;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_teacher = v_Value.bstrVal;v_ColNum.iVal = 3;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_intro = v_Value.bstrVal
58、;v_ColNum.iVal = 4;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_book = v_Value.bstrVal;v_ColNum.iVal = 5;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_classroom = v_Value.bstrVal;v_ColNum.iVal = 6;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_number = v_Value.bstrVal;v_ColNum.iVal = 7;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_classtime = v_Value.bstrVal;v_ColNum.iVal = 8;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_c_state = v_Value.bstrVal
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具行業(yè)設(shè)計(jì)師職業(yè)生涯發(fā)展路徑試題及答案
- 綠色消費(fèi)理念傳播與綠色家居行業(yè)消費(fèi)行為引導(dǎo)報(bào)告
- 天津體育學(xué)院《鋼琴與即興伴奏三》2023-2024學(xué)年第一學(xué)期期末試卷
- 學(xué)校體育館智能化照明系統(tǒng)設(shè)計(jì)評(píng)估報(bào)告:2025年創(chuàng)新應(yīng)用
- 太原科技大學(xué)《車用電機(jī)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 爬坡挑戰(zhàn)測(cè)試題及答案
- 民政局模擬試題及答案
- 深海礦產(chǎn)資源勘探技術(shù)革新在2025年的突破性進(jìn)展分析
- 煤礦應(yīng)急考試題及答案
- 廈門華廈學(xué)院《農(nóng)田雜草鑒定(實(shí)驗(yàn))》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年發(fā)展對(duì)象考試題庫(kù)含答案
- 雅馬哈便攜式擴(kuò)聲系統(tǒng)STAGEPAS 600i使用說(shuō)明書
- 2024年廣東省高考化學(xué)試題(含答案解析)
- 文藝學(xué)名著導(dǎo)讀學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 子女撫養(yǎng)協(xié)議合同模板
- 健康證記錄表-自動(dòng)提示過(guò)期功能
- 四川省2024年中考生物試卷十二套合卷【附答案】
- 廣東省專業(yè)技術(shù)人員申報(bào)專業(yè)技術(shù)資格評(píng)前公示情況表
- “新課程”“新高考”背景下的高中學(xué)科教學(xué)變革
- 教育質(zhì)量評(píng)價(jià)模型與算法研究
- 遼寧省沈陽(yáng)市第一二六中學(xué)2023-2024學(xué)年七年級(jí)下學(xué)期期中數(shù)學(xué)試題
評(píng)論
0/150
提交評(píng)論