




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序 三步曲開(kāi)端三步曲開(kāi)端 用用Field對(duì)象操作字段對(duì)象操作字段 結(jié)合結(jié)合Recordset對(duì)象使用定位方法對(duì)象使用定位方法 搜索記錄集和表中的數(shù)據(jù)搜索記錄集和表中的數(shù)據(jù) 使用使用Bookmark屬性記錄在屬性記錄在Recordset中中的位置的位置2第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序開(kāi)發(fā)一個(gè)集于開(kāi)發(fā)一個(gè)集于ADO技術(shù)的技術(shù)的VB數(shù)據(jù)庫(kù)應(yīng)用程序的數(shù)據(jù)庫(kù)應(yīng)用程序的引用引用ADO類(lèi)庫(kù)類(lèi)庫(kù)利用利用ADO的的Connection對(duì)象連接可用的數(shù)據(jù)源對(duì)象連接可用的數(shù)據(jù)源利用利用ADO的的Record
2、set對(duì)象返回需要操作的記錄對(duì)象返回需要操作的記錄集集3第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序1.中可引用中可引用ADO類(lèi)庫(kù)類(lèi)庫(kù)Microsoft ActiveX Data Objects 2.0 LibraryMicrosoft ActiveX Data Objects 2.1 LibraryMicrosoft ActiveX Data Objects 2.5 LibraryMicrosoft ActiveX Data Objects 2.6 Library引用引用ADO類(lèi)庫(kù)類(lèi)庫(kù)菜單:菜單:工程引用4第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程
3、序應(yīng)用程序Connection對(duì)象對(duì)象2.使用使用Connection對(duì)象連接可用的數(shù)據(jù)源對(duì)象連接可用的數(shù)據(jù)源定義定義1個(gè)個(gè)Connection對(duì)象對(duì)象; Dim cn As New ADODB.Connection設(shè)置設(shè)置Connection對(duì)象的對(duì)象的CursorLocation屬性為屬性為“位于客戶(hù)端的游標(biāo)位于客戶(hù)端的游標(biāo)”(adUseClient);cn.CursorLocation = adUseClient定義連接字符串定義連接字符串 provider=MSDASQL;dsn=bookdb;uid=sa;pwd=;“(ODBC)driver=SQL SERVER;server=to
4、shiba;uid=sa;pwd=;database=bookdb“(OLE DB)通過(guò)通過(guò)Connection對(duì)象的對(duì)象的Open方法建立數(shù)據(jù)連接;方法建立數(shù)據(jù)連接;cn.Open provider=MSDASQL;dsn=bookdb;uid=sa;pwd=;(ODBC)cn.Open driver=SQL SERVER;server=toshiba;uid=sa;pwd=;database=bookdb (OLE DB)5第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序Recordset對(duì)象對(duì)象3.使用使用Recoedset對(duì)象返回需要操作的記錄集對(duì)象返回需要操作的
5、記錄集(臨時(shí)表臨時(shí)表)定義定義1個(gè)個(gè)Recordset對(duì)象對(duì)象; Dim rs As New ADODB.Recordset定義檢索語(yǔ)句定義檢索語(yǔ)句 可以是:SQL查詢(xún)語(yǔ)句:mysql = select top 1 * from book或直接是表名: mysql = “book通過(guò)通過(guò)Recordset對(duì)象的對(duì)象的Open方法返回記錄集(建立臨時(shí)表);方法返回記錄集(建立臨時(shí)表);rs.Open mysql, cn或rs.Open mysql, cn, adOpenStatic, adLockOptimistic, adCmdTable(分別設(shè)定: CursorType、 LockType和
6、Options參數(shù))6第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序Close方法方法使用使用Connection和和Recordset的的Close方法方法通過(guò)使用Connection和Recordset的Close方法,可以釋放記錄集,關(guān)閉和數(shù)據(jù)源的連接。Set Connection=nothingConnection.Close和Set Recordset=nothingRecordset.CloseSet rs = nothingCn.Close7第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序可以靠檢查可以靠檢查Field對(duì)象的對(duì)象的Va
7、lue屬性來(lái)獲得字段的值屬性來(lái)獲得字段的值(因?yàn)镕ield對(duì)象的缺省屬性是Value屬性,你只要引用Field對(duì)象即可,不需要明顯的引用Value屬性) Field對(duì)象對(duì)象各種語(yǔ)法形式各種語(yǔ)法形式 :rs.Fields(LastName)rs!LastNamers!LastName在在Fields集合中,也可以用索引來(lái)標(biāo)識(shí)集合中,也可以用索引來(lái)標(biāo)識(shí)Field字段:字段: rstEmployees.Fields(0)可以使用索引循環(huán)遍歷整個(gè)集合,在每一輪的循環(huán)中將索引的值加一。集合中的對(duì)象編號(hào)是從0開(kāi)始的,因此第一個(gè)Field的編號(hào)為0,第二個(gè)為1,依此類(lèi)推。字段的順序是由基本表決定的。通常按照
8、打開(kāi)記錄集時(shí)取得的順序?qū)ψ侄芜M(jìn)行編號(hào)。 01.vbx8第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序(1) Recordset對(duì)象的定位方法:對(duì)象的定位方法:MoveFirst方法用于轉(zhuǎn)到記錄集的第一行。MoveNext方法用于轉(zhuǎn)到記錄集的下一行。MovePrevious方法用于轉(zhuǎn)到記錄集的上一行。MoveLast方法用于轉(zhuǎn)到記錄集的最后一行。Move方法用于按說(shuō)明的個(gè)數(shù)移動(dòng)記錄。 Recordset對(duì)象的定位方法對(duì)象的定位方法9第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序(2) 使用使用BOF和和EOF遍歷記錄集遍歷記錄集Recordset對(duì)
9、象的定位方法對(duì)象的定位方法BOFRecord #1Record #2Record #3EOFRecordset對(duì)象還提供了兩個(gè)屬性用于告知你此時(shí)是否到了記錄集的開(kāi)始處或末尾處;vEOF(End of File)屬性為T(mén)rue時(shí),表示你已移到了記錄集的最后一個(gè)元素后面。vBOF(Beginning of File)屬性為T(mén)rue時(shí),表示你已移到了記錄集的第一個(gè)元素之前。10第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序(2) 使用使用BOF和和EOF遍歷記錄集遍歷記錄集Recordset對(duì)象的定位方法對(duì)象的定位方法通常用于遍歷記錄集的代碼便是把定位方法和BOF、EOF結(jié)合
10、起來(lái),通常代碼是一個(gè)循環(huán),如下:Do Until EOF從字段Field中讀取數(shù)據(jù)rs.MoveNextLoop11第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序(3) 使用使用BOF和和EOF來(lái)確定一個(gè)記錄集是否為空來(lái)確定一個(gè)記錄集是否為空Recordset對(duì)象的定位方法對(duì)象的定位方法即使記錄集中沒(méi)有個(gè)記錄,BOF和EOF屬性也是可用的。事實(shí)上,判斷記錄是否為空的最好方法就是檢驗(yàn)BOF和EOF的值,如果EOF和BOF都為T(mén)rue,記錄集中便沒(méi)有記錄。BOF (No records returned) EOF02.vbx12第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Se
11、rver應(yīng)用程序應(yīng)用程序(4) 使用使用RecordCount屬性來(lái)確定記錄集中記錄的條數(shù)屬性來(lái)確定記錄集中記錄的條數(shù)Recordset對(duì)象的定位方法對(duì)象的定位方法可以用RecordCount屬性來(lái)找出在一個(gè)Recordset對(duì)象中一共有多少條記錄。03.vbx(5) 當(dāng)前記錄在記錄集中的位置當(dāng)前記錄在記錄集中的位置有的時(shí)候需要確定當(dāng)前記錄在記錄集中的位置,并將當(dāng)前記錄位置指示給用戶(hù)。例如,可以用撥號(hào)盤(pán)或儀表盤(pán)等類(lèi)型的控件顯示當(dāng)前的記錄位置。以下屬性可以指示當(dāng)前的記錄位置:AbsolutePosition屬性。AbsolutePosition屬性的值為當(dāng)前記錄相對(duì)于0的位置。然而,不要誤以為它
12、就是記錄號(hào):在當(dāng)前記錄處于不定狀態(tài)時(shí),AbsolutePosition的值為一1。另外,在訪問(wèn)記錄集時(shí),不能保證記錄每次都以同樣的順序出現(xiàn)。04.vbx13第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序(6) 改變記錄的值改變記錄的值 Recordset對(duì)象的定位方法對(duì)象的定位方法為了使用ADO Recordset對(duì)象更新已有的記錄,可以遵循如下步驟:打開(kāi)一個(gè)記錄集。給該Recordset對(duì)象中的字段分配值通過(guò)執(zhí)行該Recodset對(duì)象的Update方法以保存該記錄。rs.Fields (LastName) = Smith或者,因?yàn)镕ields是Recordset對(duì)象的
13、缺省集合,在向字段賦值時(shí)可以省去對(duì)Fields集合的顯式引用。rs!LastName = Smith用記錄集的update方法把記錄保存到數(shù)據(jù)庫(kù)。14第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序(7) 用用AddNew 和和Update方法創(chuàng)建新記錄方法創(chuàng)建新記錄Recordset對(duì)象的定位方法對(duì)象的定位方法使用記錄集的AddNew 和Update方法,可以在任何可更新的Rocordset對(duì)象中創(chuàng)建新的記錄,在記錄集中創(chuàng)建新記錄的過(guò)程分為三步:執(zhí)行記錄集的AddNew方法,這將在記錄集的末尾添加一個(gè)新的空白記錄。使用通常向數(shù)據(jù)庫(kù)字段賦值的語(yǔ)句為新記錄賦值。1)用記錄集
14、的Update方法把記錄寫(xiě)到數(shù)據(jù)庫(kù)中。DataEntr.vbx15第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序搜索記錄集和表中的數(shù)據(jù)搜索記錄集和表中的數(shù)據(jù)搜索記錄集中的數(shù)據(jù)搜索記錄集中的數(shù)據(jù)搜索和查詢(xún)不同。查詢(xún)返回的是一個(gè)記錄集。搜索在記錄集的全部記錄中查找滿(mǎn)足你說(shuō)明的條件的單個(gè)記錄。針對(duì)ADO的記錄集,搜索數(shù)據(jù)使用Recordset的Find方法。例如,假定你有一個(gè)由顧客組成的記錄集,并且你對(duì)查找姓Smith的第一個(gè)顧客感興趣,則可以使用以下的代碼:rs.Find LastName=Smith特別要記住的是,與SQL SELECT查詢(xún)不同,搜索不會(huì)產(chǎn)生一個(gè)記錄集。當(dāng)
15、Find方法搜索 Recordset 中滿(mǎn)足指定條件的記錄,如果條件符合,則記錄集位置設(shè)置在找到的記錄上,否則位置將設(shè)置在記錄集的末尾。Finder.vbx查找客戶(hù):FirstName:DarylLastname:Halpin16第第11章章 使用使用VB開(kāi)發(fā)開(kāi)發(fā)SQL Server應(yīng)用程序應(yīng)用程序使用使用Bookmark屬性記錄你在屬性記錄你在Recordset中的位置中的位置使用使用Bookmark書(shū)簽書(shū)簽當(dāng)你在一個(gè)Recordset對(duì)象上的執(zhí)行操作時(shí),移來(lái)移去是常有的事,有時(shí)還需要移回開(kāi)始的地方,用Recordset對(duì)象的Bookmark屬性可以記住位置,以便以后能夠返回這個(gè)位置。能提供Bookmark的記錄集中,每個(gè)記錄都有其自己的Bookmark
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)驗(yàn)小學(xué)投票活動(dòng)方案
- 小學(xué)校園合唱團(tuán)活動(dòng)方案
- 客戶(hù)派對(duì)活動(dòng)方案
- 小學(xué)一年級(jí)聽(tīng)算活動(dòng)方案
- 室內(nèi)公司團(tuán)隊(duì)活動(dòng)方案
- 小學(xué)無(wú)煙環(huán)境活動(dòng)方案
- 寵物每日活動(dòng)策劃方案
- 家政員團(tuán)建活動(dòng)策劃方案
- 宣傳古箏活動(dòng)方案
- 小學(xué)泥塑大賽活動(dòng)方案
- 臨時(shí)工的免責(zé)協(xié)議書(shū)
- 《員工的七個(gè)習(xí)慣》課件
- 分布式光伏危險(xiǎn)源辨識(shí)清單
- 南開(kāi)大學(xué)商學(xué)院管理綜合歷年考研真題匯編(含部分答案)(1)合集
- 上海上海市實(shí)驗(yàn)學(xué)校西校小升初數(shù)學(xué)期末試卷測(cè)試題(Word版-含解析)
- 有限空間作業(yè)審批制度
- (新插圖)人教版五年級(jí)下冊(cè)數(shù)學(xué) 6-3-1 分?jǐn)?shù)加減混合運(yùn)算 知識(shí)點(diǎn)梳理課件
- 家庭教育環(huán)境與小學(xué)生心理健康的關(guān)系 論文
- 蒸汽機(jī)的原理
- 人教版初中生物知識(shí)點(diǎn)匯總
評(píng)論
0/150
提交評(píng)論