版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 </p><p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> 課程名稱: 數(shù)據(jù)庫系統(tǒng)原理 </p><p> 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 班 級(jí): 級(jí) 班 </p><p>
2、學(xué) 號(hào): </p><p> 姓 名: </p><p> 指導(dǎo)老師: </p><p> 工廠零件進(jìn)銷存及工程管理系統(tǒng)</p><p><b> 需求分析</b></p>
3、<p><b> 背景分析:</b></p><p> 根據(jù)工廠規(guī)模日益擴(kuò)增,負(fù)責(zé)的工程項(xiàng)目也越多且越大,與零件供應(yīng)商的的交易也越來越繁瑣,行業(yè)競(jìng)爭(zhēng)也日益激烈。面對(duì)諸多問題,擁有一款優(yōu)秀的工廠物資及工程的管理系統(tǒng)會(huì)大大提高工作的效率;從長(zhǎng)期利益來看,一套好的管理系統(tǒng)還可以減少經(jīng)費(fèi)開支,增加工廠的利潤(rùn);此外,還方便了工廠的人員了解和管理相關(guān)的業(yè)務(wù),使工廠的管理水平跟得上工廠的快速
4、發(fā)展,實(shí)現(xiàn)工廠管理的高效化。</p><p><b> 功能需求:</b></p><p> 用戶在登錄應(yīng)用程序界面時(shí),檢查用戶的合法性,并在用戶連續(xù)3次登錄失敗后自動(dòng)關(guān)閉程序。</p><p> 只有管理員可以通過該程序?qū)S相關(guān)的全部信息進(jìn)行管理</p><p> 系統(tǒng)管理員可以通過應(yīng)用程序?qū)τ脩粜畔⑦M(jìn)行統(tǒng)一
5、管理,修改或刪除用戶的信息。</p><p> 普通用戶只可以修改自己的賬號(hào)和密碼,但是不能更改自己的用戶類型。</p><p> 普通客戶和系統(tǒng)管理員可以通過應(yīng)用程序查詢與工廠零件相關(guān)的信息。用戶可以根據(jù)查詢對(duì)象的不同屬性查詢到想要的信息,而且部分?jǐn)?shù)據(jù)能夠支持模糊查詢</p><p> 應(yīng)用程序內(nèi)部要可以通過SQL語句對(duì)數(shù)據(jù)庫內(nèi)的數(shù)據(jù)進(jìn)行插入、修改和刪除等操
6、作。</p><p> 當(dāng)系統(tǒng)管理員對(duì)相關(guān)信息進(jìn)行操作時(shí),系統(tǒng)要自動(dòng)檢測(cè)輸入的數(shù)據(jù)是否合理,并彈出相應(yīng)的提示信息。</p><p> 存儲(chǔ)的各種物資的數(shù)量要隨零件的供應(yīng)量或使用量的變化而動(dòng)態(tài)變化,出現(xiàn)不合理數(shù)據(jù)時(shí)通知操作員。</p><p> 應(yīng)用程序中要有該程序的相關(guān)簡(jiǎn)介和使用說明,幫助系統(tǒng)管理員和用戶更好地使用該程序。</p><p&g
7、t; 概念結(jié)構(gòu)設(shè)計(jì)(E-R圖)</p><p><b> 邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p> 表Employees的結(jié)構(gòu)</p><p> Employee_No (Employee_Name,Project_No,Title,Age),該關(guān)系模式滿足BCNF</p><p><b> ,&
8、lt;/b></p><p> 表Providers的結(jié)構(gòu)</p><p> Provider_No (Provider_Name,Provider_Phone,Provider_Address,Provider_Account)該關(guān)心模式滿足BCNF</p><p><b> 表Parts的結(jié)構(gòu)</b></p>&
9、lt;p> Part_No (Part_Name,Color,Weight,Price,Number,Description),該關(guān)系模式滿足BCNF</p><p> 表Projects的結(jié)構(gòu)</p><p> Project_No (Project_Name,Start_Time,Budget),該關(guān)系模式滿足BCNF</p><p>&l
10、t;b> 表Deal的結(jié)構(gòu)</b></p><p> Deal_No (provider_No,Part_No,Deal_Date,Deal_Number),該關(guān)系模式滿足BCNF</p><p><b> 表Used的結(jié)構(gòu)</b></p><p> Used_No (Project_No,Part_No,U
11、sed_Date,Used_Number),該關(guān)系模式滿足BCNF</p><p><b> 外鍵定義</b></p><p><b> 物理設(shè)計(jì)</b></p><p> 創(chuàng)建Users(系統(tǒng)的用戶)表</p><p> create TABLE Users</p><
12、p><b> (</b></p><p> User_No varchar(10) not null,</p><p> PassWord varchar(10) ,</p><p> User_Type varchar(1),</p><p> Constraint PK_Users Primary K
13、ey(User_No)</p><p><b> ); </b></p><p> 創(chuàng)建Providers(零件供應(yīng)商)表</p><p> CREATE TABLE Providers</p><p><b> (</b></p><p> Provider_No
14、 Varchar(5) not null,</p><p> Provider_Name varchar(20),</p><p> Provider_Phone varchar(20),</p><p> Provider_Address varchar(40),</p><p> Provider_Account varchar(
15、30),</p><p> Constraint PK_Providers Primary Key(Provider_No)</p><p><b> );</b></p><p> Provider_No是常用于查詢且更新較少的列,故建一個(gè)唯一索引</p><p> CREATE UNIQUE INDEX Pr
16、ovidersNO ON Providers(Provider_No);</p><p> 創(chuàng)建Projects(工程項(xiàng)目)表</p><p> CREATE TABLE Projects</p><p><b> (</b></p><p> Project_No varchar(5) not null,<
17、;/p><p> Project_Name varchar(20),</p><p> Start_Time varchar(20),</p><p> Budget decimal(10,1),</p><p> Constraint PK_Projects Primary Key(Project_No)</p><
18、p><b> );</b></p><p> Project_No是常用于查詢且更新較少的列,故建一個(gè)唯一索引</p><p> CREATE UNIQUE INDEX ProjectNO ON Projects(Project_No);</p><p> 創(chuàng)建Employees(工程負(fù)責(zé)人)表</p><p&
19、gt; CREATE TABLE Employees</p><p><b> (</b></p><p> Employee_No varchar(5) not null,</p><p> Employee_Name varchar(20),</p><p> Age decimal(3),</p&g
20、t;<p> Title varchar(20),</p><p> Project_No varchar(5),</p><p> Constraint PK_Employees </p><p> Primary Key(Employee_No),</p><p> Constraint FK_Employees_
21、to_Projects </p><p> Foreign Key(Project_No) References Projects(Project_No)</p><p><b> );</b></p><p> Employee_No是常用于查詢且更新較少的列,故建一個(gè)唯一索引</p><p> CREATE
22、UNIQUE INDEX EmployeeNO ON Employees(Employee_No);</p><p> 創(chuàng)建Parts(零件)表</p><p> CREATE TABLE Parts</p><p><b> (</b></p><p> Part_No varchar(5) not null,
23、</p><p> Part_Name varchar(30),</p><p> Color varchar(10),</p><p> Weight decimal(5,1),</p><p> Price decimal(10,1),</p><p> Description varchar(300),
24、</p><p> Number decimal(9),</p><p> Constraint PK_Parts Primary Key(Part_No)</p><p><b> );</b></p><p> Part_No是常用于查詢且更新較少的列,故建一個(gè)唯一索引</p><p>
25、; CREATE UNIQUE INDEX PartNO ON Parts(Part_No);</p><p> 創(chuàng)建Deal(供應(yīng)信息)表</p><p> CREATE TABLE Deal</p><p><b> (</b></p><p> Deal_No varchar(5) not null,&l
26、t;/p><p> Provider_No varchar(5),</p><p> Part_No varchar(5),</p><p> Deal_Date varchar(20),</p><p> Deal_Number decimal(7),</p><p> Constraint PK_Provid
27、er Primary Key(Deal_No),</p><p> Constraint FK_Provide_to_Providers Foreign Key(Provider_No) References Providers(Provider_No),</p><p> Constraint FK_Provide_to_Parts Foreign Key(Part_No) Re
28、ferences Parts(Part_No)</p><p><b> );</b></p><p> 創(chuàng)建Used(零件使用信息表)</p><p> CREATE TABLE Used</p><p><b> (</b></p><p> Used_No v
29、archar(5) not null,</p><p> Project_No varchar(5),</p><p> Part_No varchar(5),</p><p> Used_Number decimal(8),</p><p> Used_Date varchar(20),</p><p>
30、 Constraint PK_Used Primary Key(Used_No),</p><p> Constraint FK_Used_to_Projects Foreign Key(Project_No) References Projects(Project_No),</p><p> Constraint FK_Used_to_Parts Foreign Key(Part_N
31、o) References Parts(Part_No)</p><p><b> );</b></p><p><b> 數(shù)據(jù)庫的實(shí)施和維護(hù)</b></p><p> 本系統(tǒng)的運(yùn)行環(huán)境為Visual C++ 6.0,</p><p> 1程序執(zhí)行后彈出系統(tǒng)的登錄界面,如下圖所示:</
32、p><p> 用數(shù)據(jù)庫中存儲(chǔ)的用戶信息登錄系統(tǒng),如圖所示</p><p> 若用戶輸入的用戶信息錯(cuò)誤,會(huì)彈出警告,登錄3次失敗后系統(tǒng)自動(dòng)退出</p><p> 2登錄成功后進(jìn)入系統(tǒng)的主界面,入下圖</p><p> 點(diǎn)擊菜單欄上的“數(shù)據(jù)操作”、“查詢信息”、“系統(tǒng)用戶管理”、“幫助”可進(jìn)行相應(yīng)的操作。如下圖所示。如果使用本系統(tǒng)的是系統(tǒng)管理
33、員,則該用戶可以參與數(shù)據(jù)的相關(guān)操作,如插入、修改、和刪除;如果只是普通用戶,系統(tǒng)會(huì)設(shè)置權(quán)限,使得普通用戶只有查看相關(guān)信息和修改自己的用戶信息的權(quán)力,確保了數(shù)據(jù)庫中信息的安全性。</p><p><b> 3檢索相關(guān)信息</b></p><p> 如果要查詢零件信息,則點(diǎn)擊“查詢信息”——“零件信息”,彈出零件信息列表,如下圖</p><p>
34、; 若要根據(jù)零件的某些特定屬性查詢信息,可在“零件查詢條件”的組合框中選中相應(yīng)的條件并輸入相關(guān)的信息。例如查詢有高強(qiáng)度性質(zhì)的零件,選中“描述”,輸入“高強(qiáng)度”,點(diǎn)擊“查詢”按鈕,如圖:</p><p> 出現(xiàn)相應(yīng)的查詢結(jié)果,如下圖:</p><p> 其余的查詢操作與上述的操作類似,這里不再贅述。</p><p><b> 4數(shù)據(jù)操作</b&
35、gt;</p><p> 如果想要修改零件供應(yīng)的信息,點(diǎn)擊“數(shù)據(jù)操作”——“零件供應(yīng)情況”,彈出當(dāng)前的零件供應(yīng)信息,如下圖所示:</p><p> 如果要添加零件供應(yīng)信息,點(diǎn)擊“添加”按鈕,彈出零件供應(yīng)信息的編輯框,輸入相應(yīng)的數(shù)據(jù);如果輸入的供應(yīng)商編號(hào)或者零件編號(hào)還未存進(jìn)數(shù)據(jù)庫,系統(tǒng)會(huì)彈出供應(yīng)商或零件信息的編輯框,要求操作員先完善數(shù)據(jù)庫中供應(yīng)商或零件的信息;如果要?jiǎng)h除某一行記錄,選中相
36、應(yīng)的元組,點(diǎn)擊“刪除”(若表中的某些數(shù)據(jù)項(xiàng)被其他對(duì)象引用,系統(tǒng)會(huì)彈出警告,告知用戶刪除該項(xiàng)記錄后,其他引用該數(shù)據(jù)項(xiàng)的記錄也會(huì)被刪除);若要修改每個(gè)元組的信息,則選中該元組后點(diǎn)擊“修改”,彈出相應(yīng)的編輯框,如下圖:</p><p> (供應(yīng)編號(hào)為00007的零件供應(yīng)量減少了200)</p><p> 修改成功后數(shù)據(jù)自動(dòng)刷新,如下圖</p><p> ?。ü?yīng)編號(hào)0
37、0007的205號(hào)零件變成了2000)</p><p> 然后來看看零件信息中的數(shù)據(jù)吧,如下圖</p><p> ?。ㄅc上面的零件信息截圖比較,發(fā)現(xiàn)205號(hào)零件數(shù)量減少</p><p> 了200,說明零件信息隨供應(yīng)信息變化自動(dòng)修改數(shù)據(jù)成功)</p><p> 其余的數(shù)據(jù)操作也與上面說講的類似,這里就不再多說了</p>&
38、lt;p> 5用戶管理與信息的修改</p><p> 點(diǎn)擊“系統(tǒng)用戶管理”——“用戶管理”(只有管理員有此權(quán)限),彈出系統(tǒng)用戶的信息列表,如下圖</p><p> 管理員可以查詢到所有用戶的信息,并能夠修改用戶的賬戶、密碼和用戶類型,添加新用戶,刪除用戶信息</p><p> 點(diǎn)擊"修改",出現(xiàn)用戶信息的編輯框,如下圖:</p
39、><p> ?。ㄆ胀ㄓ脩魶]有權(quán)限修改自己的用戶類型,只能修改賬號(hào)和密碼)</p><p><b> 6系統(tǒng)幫助</b></p><p> 用戶點(diǎn)擊菜單欄上的"幫助",可以查詢到系統(tǒng)的簡(jiǎn)介和使用說明</p><p><b> 總結(jié)</b></p><p>
40、<b> 系統(tǒng)優(yōu)缺點(diǎn)的分析:</b></p><p> 這個(gè)系統(tǒng)相對(duì)于某個(gè)工廠的信息管理系統(tǒng)來說,真的只能算是一輛卡車上的一顆螺絲。系統(tǒng)可以完成的功能還遠(yuǎn)遠(yuǎn)不能滿足實(shí)際生活中的需要,而且系統(tǒng)的操作界面很呆板,風(fēng)格也比較單一。不能導(dǎo)出圖片、音頻或視頻文件。不過我相信如果有更多的時(shí)間,我會(huì)把這個(gè)系統(tǒng)做得更好!</p><p> 該系統(tǒng)使用比較簡(jiǎn)單,操作人員只需要有基
41、本的計(jì)算機(jī)知識(shí)即可。系統(tǒng)中對(duì)各種可能出現(xiàn)的錯(cuò)誤操作(如重復(fù)輸入具有唯一性的數(shù)據(jù)項(xiàng)、將零件的數(shù)目變成負(fù)數(shù)等)考慮得比較全面,在操作過程中系統(tǒng)會(huì)自動(dòng)彈出相應(yīng)的提示,比較人性化。</p><p><b> 個(gè)人感想:</b></p><p> 這是我第一次將編程語言和數(shù)據(jù)庫結(jié)合起來使用,剛開始做一點(diǎn)把握都沒有。本次課程設(shè)計(jì)使我真正的學(xué)到了不少知識(shí),由于之前對(duì)MFC的知識(shí)
42、積累不夠,尤其是在數(shù)據(jù)庫與VC++連接上存在很大漏洞,使得本次課程設(shè)計(jì)遇到了許多困難。但正是伴隨著這些困難得一個(gè)個(gè)的被解決,我學(xué)到了許多知識(shí),每次解決一個(gè)問題都會(huì)收獲不少的知識(shí),第一次感受到數(shù)據(jù)庫與編程語言的結(jié)合實(shí)在是太完美了。</p><p> 本次課程設(shè)計(jì)讓我有機(jī)會(huì)能把之前學(xué)的數(shù)據(jù)庫知識(shí)系統(tǒng)的串聯(lián)起來。尤其是對(duì)數(shù)據(jù)庫的建立與操作都上了一個(gè)臺(tái)階,包括怎么建立更簡(jiǎn)潔且沒有冗余又很完備的數(shù)據(jù)庫系統(tǒng),怎樣對(duì)數(shù)據(jù)庫結(jié)
43、構(gòu)模型的進(jìn)行設(shè)計(jì),更重要的是前期對(duì)概念模型也就是E-R圖的規(guī)劃。深刻的體會(huì)到前期工作的重要性,只有正確詳盡的對(duì)系統(tǒng)進(jìn)行分析以后,才能更高效率的完成系統(tǒng)的開發(fā)。</p><p> 做課程設(shè)計(jì)的過程中,沒有老師輔導(dǎo)我,向老師發(fā)郵件求助也沒有得到回應(yīng)。我就買了好幾本書,自己慢慢看,然后試著自己做,在引用書中的部分方法的同時(shí)也融入自己的思考,靈活地應(yīng)用多種方法,遇到難題就上網(wǎng)查看解決的方法,真的收獲不少。我相信只要是自
44、己做了就一定會(huì)有收獲的!細(xì)節(jié)決定一個(gè)程序的好壞與成??!</p><p><b> 附錄</b></p><p> ?、俪绦蛑杏糜诓僮鲾?shù)據(jù)庫的接口ADOConn類代碼</p><p> // 初始化—連接數(shù)據(jù)庫</p><p> void ADOConn::OnInitADOConn()</p>&l
45、t;p><b> {</b></p><p> ::CoInitialize(NULL);// 初始化OLE/COM庫環(huán)境 </p><p><b> try</b></p><p><b> {</b></p><p> //m_pConnection為指向C
46、onnection對(duì)象的指針:</p><p> // 創(chuàng)建Connection對(duì)象</p><p> m_pConnection.CreateInstance("ADODB.Connection");</p><p> // 設(shè)置連接字符串,必須是BSTR型或者_(dá)bstr_t類型</p><p> //該系統(tǒng)使用
47、的是文件數(shù)據(jù)源</p><p> m_pConnection->Open("FILEDSN=D:\\工廠物資管理\\工廠物資管理ODBC文件數(shù)據(jù)源.dsn;PageTimeout=5","uid=飛魚", "pwd=19900127",adModeUnknown);</p><p><b> }</b&g
48、t;</p><p><b> // 捕捉異常</b></p><p> catch(_com_error e)</p><p><b> {</b></p><p><b> // 顯示錯(cuò)誤信息</b></p><p> AfxMessage
49、Box(e.Description());</p><p><b> }</b></p><p><b> }</b></p><p><b> // 執(zhí)行查詢</b></p><p> _RecordsetPtr& ADOConn::GetRecordSet
50、(_bstr_t bstrSQL)</p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> // 連接數(shù)據(jù)庫,如果Connection對(duì)象為空,則重新連接數(shù)據(jù)庫</p><
51、;p> if(m_pConnection==NULL)</p><p> OnInitADOConn();</p><p> // 創(chuàng)建記錄集對(duì)象</p><p> m_pRecordset.CreateInstance(__uuidof(Recordset));</p><p> // 取得表中的記錄</p>
52、<p> m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);</p><p><b> }</b></p><p><b> // 捕捉異常</b></p>&
53、lt;p> catch(_com_error e)</p><p><b> {</b></p><p><b> // 顯示錯(cuò)誤信息</b></p><p> AfxMessageBox(e.Description());</p><p><b> }</b>
54、</p><p><b> // 返回記錄集</b></p><p> return m_pRecordset;</p><p><b> }</b></p><p> // 執(zhí)行SQL語句,Insert ,Update ,Delete</p><p> BOOL
55、ADOConn::ExecuteSQL(_bstr_t bstrSQL)</p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> // 是否已經(jīng)連接數(shù)據(jù)庫</p><p&
56、gt; if(m_pConnection == NULL)</p><p> OnInitADOConn();</p><p> // Connection對(duì)象的Execute方法:(_bstr_t CommandText, VARIANT * RecordsAffected, long Options ) </p><p> // 其中CommandT
57、ext是命令字串,通常是SQL命令。</p><p> // 參數(shù)RecordsAffected是操作完成后所影響的行數(shù), </p><p> // 參數(shù)Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名adCmdProc-存儲(chǔ)過程;adCmdUnknown-未知</p><p> m_pConnectio
58、n->Execute(bstrSQL,NULL,adCmdText);</p><p> return true;</p><p><b> }</b></p><p> catch(_com_error e)</p><p><b> {</b></p><p&g
59、t; AfxMessageBox(e.Description());</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> void ADOConn::ExitConnect()</p>&
60、lt;p><b> {</b></p><p> // 關(guān)閉記錄集和連接</p><p> if (m_pRecordset != NULL)</p><p> m_pRecordset->Close();</p><p> m_pConnection->Close();</p>
61、<p><b> // 釋放環(huán)境</b></p><p> ::CoUninitialize();</p><p><b> }</b></p><p> ?、贑Deal類面向Deal表,下面的函數(shù)用于向Deal表插入數(shù)據(jù)</p><p> void CDeal::sql_ins
62、ert()</p><p><b> {</b></p><p> //聲明一個(gè)ADOConn類,并連接數(shù)據(jù)庫</p><p> ADOConn m_AdoConn;</p><p> m_AdoConn.OnInitADOConn();</p><p> //設(shè)置SQL語句,由CStr
63、ing向_bstr_t類型轉(zhuǎn)換</p><p> CString str;</p><p> str.Format("INSERT INTO Deal(Deal_No,Provider_No,Part_No,Deal_Date,Deal_Number)\ VALUES('%s','%s','%s','%s
64、9;,%f)",Deal_No,Provider_No,Part_No,Deal_Date,Deal_Number);</p><p> _bstr_t vSQL;</p><p> vSQL=_bstr_t(str);</p><p> m_AdoConn.ExecuteSQL(vSQL);//執(zhí)行SQL語句</p><p>
65、; m_AdoConn.ExitConnect();//斷開與數(shù)據(jù)庫的連接</p><p><b> }</b></p><p> 注:用于其它表的插入、刪除、和修改的函數(shù)大體相同,只是SQL語句有點(diǎn)變化,故不再一一列出</p><p> ?、巯旅媸枪こ特?fù)責(zé)人管理對(duì)話框函數(shù)</p><p> void CEmpM
66、anagementDlg::OnButtonAdd() //添加信息</p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> UpdateData(TRUE);</p><p>
67、CEmpEditDlg dlg;//聲明一個(gè)負(fù)責(zé)人編輯對(duì)話框變量</p><p> //buttonflag是CEmpEditDlg類中的一個(gè)標(biāo)志,為1時(shí)表示要把輸入</p><p> //的數(shù)據(jù)插入Employees表,為-0時(shí)表示更新Employees表中的數(shù)據(jù)</p><p> dlg.buttonflag=1;</p><p>
68、 if (dlg.DoModal() == IDOK)</p><p> RefreshData();</p><p><b> }</b></p><p> void CEmpManagementDlg::OnButtonModify() //修改信息</p><p><b> {</b&g
69、t;</p><p> // TODO: Add your control notification handler code here</p><p> UpdateData(TRUE);</p><p> CEmpEditDlg dlg;</p><p> //將DataGrid控件中要修改的信息讀到編輯框中</p>
70、<p> dlg.m_Employee_No=m_DataGrid.GetItem(0);</p><p> dlg.m_Employee_Name = m_DataGrid.GetItem(1);</p><p> dlg.m_Age = m_DataGrid.GetItem(2); </p><p> dlg.m_Project_No =
71、m_DataGrid.GetItem(4);</p><p> if (dlg.DoModal() == IDOK)</p><p> RefreshData();</p><p><b> }</b></p><p> void CEmpManagementDlg::OnButtonDelete() //刪除
72、信息</p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> CString str=m_DataGrid.GetItem(0);//獲取負(fù)責(zé)人的編號(hào)</p><p> CEmplo
73、yees emp;</p><p> if (MessageBox("是否刪除當(dāng)前記錄?","請(qǐng)確認(rèn)", MB_YESNO) == IDYES)//如果確認(rèn)刪除則刪掉相應(yīng)信息</p><p><b> {</b></p><p> emp.sql_delete(str);//刪除指定編號(hào)的負(fù)責(zé)人信息
74、</p><p> RefreshData();</p><p><b> }</b></p><p><b> }</b></p><p> 注:其余管理對(duì)話框的代碼類似,不再贅述</p><p> ?、芤韵率遣樵児こ绦畔⒌膶?duì)話框代碼</p><
75、;p> void CProjectsInfoDlg::OnButtonSearch() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> UpdateData();</p>&l
76、t;p> CString csql; </p><p> switch(m_Radio)//m_Radio代表選擇的相應(yīng)的查詢條件</p><p><b> {</b></p><p> case -1://未選擇任何查詢條件</p><p> if(m_SearchOption!=""
77、;)</p><p><b> {</b></p><p> MessageBox("請(qǐng)選中查詢的條件!");</p><p><b> return;</b></p><p><b> }</b></p><p><b
78、> else</b></p><p><b> {</b></p><p> MessageBox("請(qǐng)選中查詢的條件!");</p><p><b> return;</b></p><p><b> }</b></p&g
79、t;<p><b> break;</b></p><p> case 0://選擇按工程編號(hào)查詢</p><p> if(m_SearchOption=="")</p><p><b> {</b></p><p> MessageBox("請(qǐng)
80、輸入工程項(xiàng)目編號(hào)!");</p><p><b> return;</b></p><p><b> }</b></p><p> csql.Format("SELECT * from Projects where Project_No='%s'",m_SearchOpt
81、ion);//設(shè)置查詢語句</p><p><b> break;</b></p><p> case 1://選擇按工程項(xiàng)目名稱查詢</p><p> if(m_SearchOption=="")</p><p><b> {</b></p><p&
82、gt; MessageBox("請(qǐng)輸入工程項(xiàng)目名稱!");</p><p><b> return;</b></p><p><b> }</b></p><p> csql.Format("SELECT * FROM Projects where Project_Name='
83、%s'",m_SearchOption);//設(shè)置查詢語句</p><p><b> break;</b></p><p> case 2://選擇按開工時(shí)間查詢</p><p> if(m_Start_Time==0)</p><p><b> { </b></p&
84、gt;<p> MessageBox("請(qǐng)選擇開工時(shí)間!");</p><p><b> return;</b></p><p><b> }</b></p><p> csql.Format("SELECT * FROM Projects WHERE Start_Ti
85、me='%s'",m_Start_Time.Format("%Y-%m-%d"));//設(shè)置查詢語句</p><p><b> break;</b></p><p> case 3://選擇按工程預(yù)算資金范圍查詢</p><p> if(m_Combo.GetCurSel()==-1)//沒有
86、選擇任何預(yù)算資金范圍</p><p><b> {</b></p><p> MessageBox("請(qǐng)選擇資金預(yù)算范圍!");</p><p><b> return;</b></p><p><b> }</b></p><p
87、> //以下是根據(jù)選擇的預(yù)算資金范圍設(shè)置SQL語句</p><p> if(m_Combo.GetCurSel()==0) csql.Format("SELECT * FROM Projects WHERE Budget<10000");</p><p> else if(m_Combo.GetCurSel()==1) csql.Format(&qu
88、ot;SELECT * FROM Projects WHERE Budget Between 10000 and 30000");</p><p> else if(m_Combo.GetCurSel()==2) csql.Format("SELECT * FROM Projects WHERE Budget Between 30000 and 50000");</p>
89、<p> else if(m_Combo.GetCurSel()==3) csql.Format("SELECT * FROM Projects WHERE Budget Between 50000 and 100000");</p><p> else if(m_Combo.GetCurSel()==4) csql.Format("SELECT * FROM Pr
90、ojects WHERE Budget Between 100000 and 150000");</p><p> else if(m_Combo.GetCurSel()==5) csql.Format("SELECT * FROM Projects WHERE Budget Between 150000 and 200000");</p><p> el
91、se if(m_Combo.GetCurSel()==6) csql.Format("SELECT * FROM Projects WHERE Budget Between 200000 and 1000000");</p><p> else if(m_Combo.GetCurSel()==7) csql.Format("SELECT * FROM Projects WHERE
92、Budget>=1000000");</p><p><b> break;</b></p><p><b> }</b></p><p> RefreshData(csql);//該函數(shù)根據(jù)后面的參數(shù)csql顯示查詢的數(shù)據(jù)</p><p><b> }</b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)--商品進(jìn)銷存管理系統(tǒng)
- 進(jìn)銷存管理數(shù)據(jù)庫課程設(shè)計(jì)
- 藥品進(jìn)銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--醫(yī)院藥品進(jìn)銷存系統(tǒng)
- 數(shù)據(jù)庫進(jìn)銷存管理系統(tǒng)設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--醫(yī)院藥品進(jìn)銷存系統(tǒng)
- 網(wǎng)站進(jìn)銷存數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫課程設(shè)計(jì)--進(jìn)銷存管理系統(tǒng)需求分析與設(shè)計(jì)
- 數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計(jì)--商店進(jìn)銷存管理系統(tǒng)
- 某家具城進(jìn)銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--- 百貨進(jìn)銷存信息管理系統(tǒng)
- 數(shù)據(jù)庫應(yīng)用技術(shù)課程設(shè)計(jì)--超市進(jìn)銷存管理
- 進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫畢業(yè)設(shè)計(jì)---商品進(jìn)銷存管理系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---進(jìn)銷存管理系統(tǒng)設(shè)計(jì)
- 住院管理系統(tǒng)-數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)
- 超市進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--超市進(jìn)銷管理系統(tǒng)
- 數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論