版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)7.1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)步驟7.2數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的體系結(jié)構(gòu)和開(kāi)發(fā)工具7.3常用的數(shù)據(jù)庫(kù)編程接口7.4數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)案例—學(xué)生成績(jī)管理系統(tǒng)7.5VB.NET/C++Console前臺(tái)應(yīng)用系統(tǒng)程序的開(kāi)發(fā)
本章內(nèi)容數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程一般包括:1.需求分析2.系統(tǒng)初步設(shè)計(jì)3.系統(tǒng)詳細(xì)設(shè)計(jì)4.編碼、調(diào)試5.系統(tǒng)交付7.1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)步驟7.2.1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的體系結(jié)構(gòu)1. 單用戶數(shù)據(jù)庫(kù)系統(tǒng)2. 主從式多用戶模式數(shù)據(jù)庫(kù)系統(tǒng)3. C/S架構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)7.2數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的體系結(jié)構(gòu)和開(kāi)發(fā)工具4. B/S架構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)7.2數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的體系結(jié)構(gòu)和開(kāi)發(fā)工具7.2.2常用的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具C/S架構(gòu)下常用的開(kāi)發(fā)工具有:VisualC++,VisualC#,VisualBasic/VisualBasic.Net,Delphi,Java等。B/S架構(gòu)下常用的開(kāi)發(fā)工具有:ASP,JSP,PHP,VBScript,JavaScript等。7.2數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的體系結(jié)構(gòu)和開(kāi)發(fā)工具7.3常用的數(shù)據(jù)庫(kù)編程接口API高級(jí)語(yǔ)言編程訪問(wèn)數(shù)據(jù)庫(kù),一般需要各種API(ApplicationProgrammingInterface,應(yīng)用程序編程接口),這些接口也可以稱為中間件。比較常用的接口有ADO、ADO.NET、OLEDB、ODBC、JDBC等,每種編程接口都可訪問(wèn)不同的數(shù)據(jù)庫(kù),且提供統(tǒng)一的格式和操作方法。在開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí)可根據(jù)不同情況選用不同的編程接口。1. ODBC接口ODBC(OpenDataBaseConnectivity,開(kāi)放數(shù)據(jù)庫(kù)互連)2. OLEDB接口OLE全稱ObjectLinkandEmbed,即對(duì)象連接與嵌入3. ADO接口ADO(ActiveXDataObjects,ActiveX數(shù)據(jù)對(duì)象)是Microsoft提出的應(yīng)用程序接口(API)用以實(shí)現(xiàn)訪問(wèn)關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)。4. ADO.NET接口ADO.NET的名稱起源于ADO,是一個(gè)COM組件庫(kù),用于在以往的Microsoft技術(shù)中訪問(wèn)數(shù)據(jù)。之所以使用ADO.NET名稱,是因?yàn)镸icrosoft希望表明,這是在NET編程環(huán)境中優(yōu)先使用的數(shù)據(jù)訪問(wèn)接口。7.4數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)案例—學(xué)生成績(jī)管理系統(tǒng)7.4.1后臺(tái)數(shù)據(jù)庫(kù)的設(shè)計(jì)主要表:其他編程附加表:學(xué)院系統(tǒng)狀態(tài)教師臨時(shí)學(xué)生課程課堂選課成績(jī)7.4.2應(yīng)用系統(tǒng)功能規(guī)劃與劃分教務(wù)管理端:1.添加/查詢課程2.設(shè)置選課信息(比如設(shè)置開(kāi)選時(shí)間,截止時(shí)間等)3.排課堂4.查看課堂選課情況并確定是否可開(kāi)設(shè)5.查看成績(jī)(以課堂為單位)6.查詢教師/學(xué)生密碼教師端:1.查看自己的課堂和班級(jí)2.查看某課堂的學(xué)生名單3.錄入/修改學(xué)生成績(jī)4.激活某課堂成績(jī)5.修改密碼學(xué)生端:1.查看自己的必修課的課堂情況2.查看選修課堂并選課3.查看自己的選修課的選課情況4.查看課程成績(jī)5.修改密碼7.4.3數(shù)據(jù)庫(kù)服務(wù)器的配置1. 服務(wù)器配置重新啟動(dòng)SQLServer服務(wù),即可生效。2.設(shè)置或新建SQLServer登錄名SQLServer可使用已有的登錄名,如使用sa登錄名登錄,則只需更改一些設(shè)置即可;也可以新建一個(gè)登錄名。7.5.1ADO.NET的基本操作使用VB.NET開(kāi)發(fā)數(shù)據(jù)庫(kù)系統(tǒng)前臺(tái),一般需要使用編程接口ADO.NET。ADO.NET提供了4個(gè)核心對(duì)象,它們是:Connection對(duì)象Command對(duì)象DataAdapter對(duì)象DataReader/XmlReader對(duì)象通過(guò)它們可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作。7.5VB.NET前臺(tái)應(yīng)用系統(tǒng)程序的開(kāi)發(fā)
名稱功能屬性ConnectionString獲取或設(shè)置用于打開(kāi)數(shù)據(jù)庫(kù)的字符串。方法Open()打開(kāi)與數(shù)據(jù)庫(kù)的連接。Close()關(guān)閉與數(shù)據(jù)庫(kù)的連接。Connection對(duì)象:用于與指定的數(shù)據(jù)源連接。Connection對(duì)象的主要屬性和方法
名稱功能屬性CommandText獲取或設(shè)置對(duì)數(shù)據(jù)源執(zhí)行的SQL語(yǔ)句或存儲(chǔ)過(guò)程。CommandType獲取或設(shè)置一個(gè)值,指示如何解釋CommandText屬性。Connection獲取或設(shè)置Command與數(shù)據(jù)源的Connection對(duì)象。方法ExecuteNonQuery()執(zhí)行一個(gè)非查詢的命令(如:insert、update、delete以及存儲(chǔ)過(guò)程)。ExecuteReader()將CommandText發(fā)送到Connection并生成一個(gè)DataReader對(duì)象。ExecuteXmlReader()將CommandText發(fā)送到Connection并生成一個(gè)XmlReader對(duì)象。Command對(duì)象:為其他對(duì)象的操作提供對(duì)數(shù)據(jù)操作命令。Command對(duì)象的主要屬性和方法
名稱功能屬性InsertCommandDeleteCommandUpdateCommandSelectCommand指定向DataAdapter提交的各種命令。方法Fill()向數(shù)據(jù)庫(kù)提交命令,并將執(zhí)行結(jié)果填充到DataSet中。DataAdapter對(duì)象:用從數(shù)據(jù)源中獲取的數(shù)據(jù)向DataSet中填充并解析更新。DataAdapter對(duì)象的主要屬性和方法
名稱功能屬性FieldCount獲取當(dāng)前行中的列數(shù)。HasRows獲取一個(gè)值,指示DataReader中是包含一行或多行。Item獲取以本機(jī)格式表示的列的值。方法GetName()獲取指定列的名字。Read()使DataReader前進(jìn)到下一跳記錄。Close()關(guān)閉DataReader對(duì)象。DataReader/XmlReader對(duì)象:以只讀方式讀取數(shù)據(jù)源中的數(shù)據(jù)或與XML格式的數(shù)據(jù)文件交互。DataReader/XmlReader對(duì)象的主要屬性和方法ADO.NET的使用方法在VB.NET中使用ADO.NET,其后臺(tái)數(shù)據(jù)庫(kù)為SQLServer時(shí),首先必須在窗體模塊或通用模塊之外引入相應(yīng)的命名空間,格式為:ImportsSystem.DataImportsSystem.Data.SqlClientADO.NET的使用主要有三個(gè)步驟:(1)連接數(shù)據(jù)庫(kù)(2)操作數(shù)據(jù)庫(kù)數(shù)據(jù)(3)關(guān)閉數(shù)據(jù)庫(kù)連接(1)連接數(shù)據(jù)庫(kù)ADO.NET與SQLServer數(shù)據(jù)庫(kù)的連接需要定義一個(gè)SqlConnection的連接對(duì)象DimmyConnAsNewSqlConnection或PublicmyConnAsNewSqlConnection設(shè)置連接字符串,格式為:sqlStr="DataSource=localhost或者.或者服務(wù)器的IP地址;InitialCatalog=數(shù)據(jù)庫(kù)名;IntegratedSecurity=False;UserID=用戶名;Pwd=密碼"myConn.ConnectionString=sqlStr最后使用連接對(duì)象myConn的Open方法即可連接到數(shù)據(jù)庫(kù)。如:myConn.Open()(2)操作數(shù)據(jù)庫(kù)數(shù)據(jù)①
通過(guò)DataSet操作數(shù)據(jù)庫(kù)數(shù)據(jù)方法為:定義DataAdapter對(duì)象、DataSet對(duì)象和Command對(duì)象DimmyAdapterAsNewSqlDataAdapterDimmyDataSetAsNewDataSetDimselectCmdAsNewSqlCommand設(shè)計(jì)查詢命令,如:sqlStr="select*from教師"設(shè)置Command對(duì)象屬性selectCmd.CommandText=sqlStrselectCmd.Connection=myConn設(shè)置DataAdapter對(duì)象屬性myAdapter.SelectCommand=selectCmd執(zhí)行DataAdapter對(duì)象并將查詢結(jié)果填充到DataSet中,并命名為"jsb"。myAdapter.Fill(myDataSet,"jsb")②
通過(guò)DataReader對(duì)象操作只讀數(shù)據(jù)方法為:定義DataReader對(duì)象和Command對(duì)象DimmyDataReaderAsSqlDataReaderDimselectCmdAsNewSqlCommand設(shè)計(jì)查詢命令,如:sqlStr="select*from教師"設(shè)置Command對(duì)象屬性selectCmd.CommandText=sqlStrselectCmd.Connection=myConn運(yùn)行Command對(duì)象的ExecuteReader()方法,得到結(jié)果集(在內(nèi)存中)并將myDataReader指向此結(jié)果集。如:myDataReader=selectCmd.ExecuteReader()最后關(guān)閉myDataReadermyDataReader.Close()③
還可直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行Insert、Update、Delete操作方法為:定義Command對(duì)象DimsqlCmdAsNewSqlCommand設(shè)計(jì)Insert、Update、Delete操作命令updateCmd="Update選課成績(jī)"updateCmd&="set成績(jī)="&cjupdateCmd&="Where學(xué)號(hào)='"&xh&"'"updateCmd&="And課堂編號(hào)='"&ktbh&"'"設(shè)置Command對(duì)象屬性sqlCmd.CommandText=updateCmdsqlCmd.Connection=myConn運(yùn)行Command對(duì)象的ExecuteNonQuery()方法,如:sqlCmd.ExecuteNonQuery()(3)關(guān)閉數(shù)據(jù)庫(kù)連接關(guān)閉數(shù)據(jù)庫(kù)連接可使用連接對(duì)象myConn的Close方法。如:myConn.Close()即可關(guān)閉與數(shù)據(jù)庫(kù)的連接。7.5.2數(shù)據(jù)庫(kù)數(shù)據(jù)與相關(guān)控件的綁定將數(shù)據(jù)庫(kù)中的數(shù)據(jù)與某些控件綁定是為了顯示和操作數(shù)據(jù),一般有這么三類控件可用于數(shù)據(jù)的綁定。1.將DataSet中的某個(gè)數(shù)據(jù)表整個(gè)地綁定到控件上可用控件:DataGridView格式:控件對(duì)象名.DataSource=數(shù)據(jù)源控件對(duì)象名.DataMember=數(shù)據(jù)成員數(shù)據(jù)源:可以是DataSet、DataView、DataTable。數(shù)據(jù)成員:數(shù)據(jù)表。2.只將數(shù)據(jù)表中某一列綁定到控件上可用控件:ComboBox、ListBox等格式:控件對(duì)象名.DataSource=數(shù)據(jù)源控件對(duì)象名.DisplayMember=數(shù)據(jù)成員數(shù)據(jù)源:可以是DataSet、DataView、DataTable。數(shù)據(jù)成員:數(shù)據(jù)表中的字段。3.一次只能綁定當(dāng)前記錄的某個(gè)字段的值到控件上可用控件:Label、TextBox、Button、CheckBox、RadioButton等格式:控件對(duì)象名.DataBindings.Add("屬性","數(shù)據(jù)源","數(shù)據(jù)成員")屬性:制定所要綁定的控件屬性。數(shù)據(jù)源:可以是DataSet、DataView、DataTable。數(shù)據(jù)成員:數(shù)據(jù)表中的字段。37數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用ThankYou!7.5.1ADO的基本操作使用C++開(kāi)發(fā)數(shù)據(jù)庫(kù)系統(tǒng)前臺(tái),一般需要使用編程接口ADO或其他編程接口。ADO的對(duì)象介紹ADO提供了如下主要對(duì)象:Connection對(duì)象Command對(duì)象Parameter對(duì)象RecordSet對(duì)象Fields對(duì)象Error對(duì)象Property對(duì)象通過(guò)它們可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作。7.5C++前臺(tái)應(yīng)用系統(tǒng)程序的開(kāi)發(fā)
名稱功能屬性ConnectionString獲取或設(shè)置用于打開(kāi)數(shù)據(jù)庫(kù)的字符串。Mode屬性可以設(shè)置連接的模式。Provider可以指定OLEDB提供者。方法BeginTrans()開(kāi)始一個(gè)處理事務(wù)。CommitTrans()提交一個(gè)處理事務(wù)。RollbackTrans()回滾一個(gè)處理事務(wù)。Open()打開(kāi)與數(shù)據(jù)庫(kù)的連接。Close()關(guān)閉與數(shù)據(jù)庫(kù)的連接。Execute()執(zhí)行一個(gè)SQL的命令。Connection對(duì)象:用于與指定的數(shù)據(jù)源連接。Connection對(duì)象的主要屬性和方法
名稱功能屬性CommandText獲取或設(shè)置對(duì)數(shù)據(jù)源執(zhí)行的SQL語(yǔ)句或存儲(chǔ)過(guò)程。CommandType指定命令的類型方法CreateParameter()創(chuàng)建SQL命令參數(shù)。Execute()執(zhí)行一個(gè)SQL命令。Command對(duì)象:為其他對(duì)象的操作提供對(duì)數(shù)據(jù)操作命令。Command對(duì)象的主要屬性和方法
名稱功能屬性Name指定參數(shù)的名稱。Value可以指定參數(shù)的值。方法AppendChunk()將數(shù)據(jù)傳遞到參數(shù)里。Parameter對(duì)象:用于指定Command對(duì)象中參數(shù)化查詢或者存儲(chǔ)過(guò)程的參數(shù)。Parameter對(duì)象的主要屬性和方法
名稱功能屬性BOF記錄指針是否在開(kāi)頭。EOF記錄指針是否在末尾。方法AddNew()在記錄集中添加一條新記錄。Update()將修改的結(jié)果寫回?cái)?shù)據(jù)源。MoveFirst()MoveLast()MoveNext()MovePrevious()Move()移動(dòng)記錄指針。RecordSet對(duì)象:將一個(gè)查詢命令的返回結(jié)果存放在RecordSet記錄集中,這個(gè)RecordSet記錄集被保存在本地的內(nèi)存之中。RecordSet對(duì)象的主要屬性和方法ADO的使用方法ADO操作簡(jiǎn)單,最基本的操作流程為:初始化COM庫(kù),引入ADO庫(kù)定義文件;用Connection對(duì)象連接數(shù)據(jù)庫(kù);利用建立好的連接,通過(guò)Connection、Command對(duì)象執(zhí)行SQL命令,或利用RecordSet對(duì)象獲取結(jié)果記錄集進(jìn)行查詢、處理等;使用完畢后關(guān)閉連接釋放對(duì)象。在C++中要使用ADO控件,首先必須引入ADO,在VC++系統(tǒng)目錄中有一個(gè)msado15.dll動(dòng)態(tài)鏈接庫(kù)文件,使用#import引入,方法為:#import"C:\ProgramFiles\CommonFiles\System\ado\msado15.dll"\no_namespacerename("EOF","adoEOF")然后在主函數(shù)中初始化COM環(huán)境。CoInitialize(NULL);定義連接對(duì)象和記錄集對(duì)象并實(shí)例化它們。_ConnectionPtrm_pConnection;_RecordsetPtrm_pRecordset;m_pConnection.CreateInstance(__uuidof(Connection));m_pRecordset.CreateInstance(__uuidof(Recordset));然后就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。程序結(jié)束時(shí)要釋放COM環(huán)境。方法為:CoUninitialize();對(duì)數(shù)據(jù)庫(kù)操作一般按這么三步進(jìn)行:連接數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作數(shù)據(jù)庫(kù)處理完畢后要關(guān)閉數(shù)據(jù)庫(kù)連接1.連接數(shù)據(jù)庫(kù)ADO與SQLServer數(shù)據(jù)庫(kù)的連接需要通過(guò)_ConnectionPtr定義一個(gè)連接的指針對(duì)象并實(shí)例化。_ConnectionPtrm_pConnection;m_pConnection.CreateInstance(__uuidof(Connection));定義一個(gè)_bstr_t類型的字符串變量并設(shè)置連接字符串:_bstr_tstrConnect="Provider=SQLOLEDB.1;DataSource=localhost或者.或者服務(wù)器的IP地址;InitialCatalog=數(shù)據(jù)庫(kù)名;PersistSecurit
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版學(xué)校校辦工廠風(fēng)險(xiǎn)管理與承包經(jīng)營(yíng)合同3篇
- 二零二五年度木材市場(chǎng)行情預(yù)測(cè)與分析咨詢合同4篇
- 2025年度環(huán)保材料研發(fā)與生產(chǎn)合作合同范本4篇
- 2025版旅游度假區(qū)租賃與旅游服務(wù)合作協(xié)議3篇
- 2025年度智能交通系統(tǒng)保密管理與服務(wù)合同
- 二零二五年度科技型中小企業(yè)貸款合同
- 2025年度知識(shí)產(chǎn)權(quán)授權(quán)委托書(shū)簽訂協(xié)議
- 2025年度門面出租合同終止與租賃合同終止后合同解除及違約賠償協(xié)議
- 2025年度銀行存款賬戶遠(yuǎn)程開(kāi)戶服務(wù)協(xié)議
- 2025年度私人房產(chǎn)使用權(quán)轉(zhuǎn)讓與智能家居系統(tǒng)安裝合同
- 2024年全國(guó)體育專業(yè)單獨(dú)招生考試數(shù)學(xué)試卷試題真題(含答案)
- 北師大版小學(xué)三年級(jí)上冊(cè)數(shù)學(xué)第五單元《周長(zhǎng)》測(cè)試卷(含答案)
- DB45T 1950-2019 對(duì)葉百部生產(chǎn)技術(shù)規(guī)程
- 2025屆河北省衡水市衡水中學(xué)高考仿真模擬英語(yǔ)試卷含解析
- 新修訂《保密法》知識(shí)考試題及答案
- 電工基礎(chǔ)知識(shí)培訓(xùn)課程
- 住宅樓安全性檢測(cè)鑒定方案
- 廣東省潮州市潮安區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期末考試數(shù)學(xué)試題
- 市政道路及設(shè)施零星養(yǎng)護(hù)服務(wù)技術(shù)方案(技術(shù)標(biāo))
- 選擇性必修一 期末綜合測(cè)試(二)(解析版)2021-2022學(xué)年人教版(2019)高二數(shù)學(xué)選修一
- 《論語(yǔ)》學(xué)而篇-第一課件
評(píng)論
0/150
提交評(píng)論