VB+SQL常用技術(shù)_第1頁(yè)
VB+SQL常用技術(shù)_第2頁(yè)
VB+SQL常用技術(shù)_第3頁(yè)
VB+SQL常用技術(shù)_第4頁(yè)
VB+SQL常用技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、預(yù)備知識(shí):數(shù)據(jù)庫(kù)編程實(shí)用技術(shù)1一、ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)1.常用ADO對(duì)象connection對(duì)象 connection對(duì)象代表與數(shù)據(jù)庫(kù)的連接.等價(jià)于到服務(wù)器的實(shí)際連接.在訪問(wèn)數(shù)據(jù)庫(kù)時(shí)首先要?jiǎng)?chuàng)建一個(gè)connection對(duì)象.通過(guò)它建立到數(shù)據(jù)庫(kù)的連接.創(chuàng)建方法: dim cnn As New ADODB.Connection2Connectionstring屬性. connectionstring是連接字符串,指定用于建立連接數(shù)據(jù)源的信息。可以通過(guò)ODBC數(shù)據(jù)源訪問(wèn)數(shù)據(jù)庫(kù),但此種方法須在運(yùn)行數(shù)據(jù)庫(kù)應(yīng)用程序的計(jì)算機(jī)上配置ODBC,工作繁瑣??梢酝ㄟ^(guò)直接設(shè)置數(shù)據(jù)源提供者(provider)和數(shù)據(jù)庫(kù)文件

2、的方法表示連接字符串。代碼如下:3Dim cnn As New ADODB.connectionCnn.connection=“provider=SQLOLEDB.1;Password=sa;UserID=sa;Initial Catalog=userMan;DataSource”P(pán)rovider:定義數(shù)據(jù)源提供者SQLOLEDB.1表示數(shù)據(jù)源是SQL serverPassword:指定訪問(wèn)數(shù)據(jù)庫(kù)密碼UserID:指定訪問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)名Initial Catalog:要訪問(wèn)數(shù)據(jù)庫(kù)DataSource:指定訪問(wèn)數(shù)據(jù)庫(kù)所在的服務(wù)器Locallhost:表示數(shù)據(jù)庫(kù)服務(wù)器就是本地計(jì)算機(jī)4Connect

3、ionTimeout屬性:指定終止嘗試和產(chǎn)生錯(cuò)誤之前執(zhí)行命令需要等待的時(shí)間。默認(rèn)為30sMode屬性:指定connection對(duì)象修改數(shù)據(jù)的權(quán)限。5常量說(shuō)明常量說(shuō)明adModeUnknown未設(shè)置adModeShareDenyRead防止其它用戶(hù)使用讀權(quán)限打開(kāi)連接adModeRead只讀adModeShareDenyWrite防止其它用戶(hù)使用寫(xiě)權(quán)限打開(kāi)連接adModeWrite只寫(xiě)adModeShareExclusive防止其它用戶(hù)打開(kāi)連接adModeReadWrite讀寫(xiě)adModeShareDenyNone防止使用任何權(quán)限打開(kāi)連接6State屬性 返回connection狀態(tài)常量說(shuō)明adS

4、tateClose默認(rèn) 關(guān)閉adStateOpen打開(kāi)adStateConnecting正在連接adStateExecuting正在執(zhí)行命令adStatefetching對(duì)象的行正在被讀取7Open方法 用于打開(kāi)到數(shù)據(jù)庫(kù)的連接 語(yǔ)法結(jié)構(gòu): connection.open connectionstring,userID,Password,Option 若設(shè)置了connectionstring屬性值,以上參數(shù)可省略.連接字符串訪問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)名密碼連接選項(xiàng)8Close方法.關(guān)閉到數(shù)據(jù)源的連接 語(yǔ)法: connection.close9使用connection對(duì)象連接到數(shù)據(jù)庫(kù)的方法Private S

5、ub Form_Load()Dim cnn as New ADODB.ConnectionCnn.connectionstring=“provider=SQLOLEDB.1;Password=sa;userID=sa;Initial Catalog=UserMan;dataSource=localhost”Cnn.OpenIf cnn.state=adStateOpen then MsbBox”打開(kāi)數(shù)據(jù)庫(kù)”EndifCnn.closeIf cnn.state=adStateClose then MsbBox”數(shù)據(jù)庫(kù)關(guān)閉”EndifEnd Sub102.Command對(duì)象Command對(duì)象:定義

6、對(duì)數(shù)據(jù)源執(zhí)行的命令主要屬性(1)Activeconnection 設(shè)置打開(kāi)的連接與何connection對(duì)象關(guān)聯(lián)(2)CommandText屬性 定義命令的可執(zhí)行文本(3)Execute方法。執(zhí)行在commandText中指定的命令(查詢(xún)語(yǔ)句、SQL語(yǔ)句或存儲(chǔ)過(guò)程)11Command對(duì)象使用實(shí)例-修改用戶(hù)密碼Private sub command_click()Private Sub Form_Load()Dim cnn as New ADODB.ConnectionCnn.connectionstring=“provider=SQLOLEDB.1;Password=sa;userID=sa;

7、Initial Catalog=UserMan;dataSource=LEE”Dim cmd ad ADODB.CommandCnn.OpenIf cnn.state=adStateOpen then set cmd.Activeconnection=cnn mandtext=“UPDATE users SET userPwd=”&trim(text1)&” where username=lee” cmd.execute msgbox”密碼修改成功”Else msgbox “連接數(shù)據(jù)庫(kù)失敗”Endif Cnn.close Unload meEnd Sub123.Recordset對(duì)象Recor

8、dset對(duì)象表示來(lái)自基本表或命令執(zhí)行結(jié)果的記錄全集主要屬性Activeconnection屬性 設(shè)置與打開(kāi)的連接與Recordset對(duì)象關(guān)聯(lián)AbsolutePosition屬性。當(dāng)前記錄的序號(hào)位置BOF 屬性 BOF為真,記錄指針位于第一個(gè)記錄之前EOF 屬性 EOF為真,記錄指針位于最后一個(gè)記錄的后面13MaxRecord屬性。查詢(xún)返回Recordset的記錄最大數(shù)目RecordCount屬性。返回Recordset對(duì)象中記錄的最大數(shù)目。Move方法。在記錄集中移動(dòng)指針。Movefirst、 Movelast、 movenext moveprevious方法。在指定的記錄集對(duì)象中移動(dòng)到第一個(gè)

9、,最后一個(gè),下一個(gè),前一個(gè)記錄,并使該記錄成為當(dāng)前記錄14Open方法。打開(kāi)代表基本表、查詢(xún)結(jié)果或者以前保存的Recordset中的記錄游標(biāo)。 語(yǔ)法: recordset.open source,Activeconnection,cursortype,locktype,options記錄源指定相應(yīng)的connection對(duì)象游標(biāo)類(lèi)型鎖定類(lèi)型指定source參數(shù)的類(lèi)型15Cursor屬性值常量說(shuō)明adOpenForwardOnly打開(kāi)僅向前類(lèi)型游標(biāo)adOpenKeyset打開(kāi)類(lèi)型游標(biāo)adOpenDyname打開(kāi)動(dòng)態(tài)類(lèi)型游標(biāo)adOpenStatic打開(kāi)靜態(tài)類(lèi)型游標(biāo)16Option屬性值常量說(shuō)明adC

10、mdText將sourve視為命令adCmdTabel生成SQL查詢(xún)從在soure中命名的表中返回所有行adCmdTabelDirect直接從在soure中命名的表中返回所有行adCmdStoreProc將Soure視為存儲(chǔ)過(guò)程adCmdUnknownSouer參數(shù)中的命令類(lèi)型為未知adCmdFile從在soure中命名的文件中恢復(fù)保存的Recorderset17Recordset對(duì)象使用方法Private Sub Form_Load()Dim cnn as New ADODB.ConnectionDim rs1 as New ADODB.RecordsetCnn.connectionstri

11、ng=“provider=SQLOLEDB.1;Password=sa;userID=sa;Initial Catalog=UserMan;dataSource=localhost”Cnn.OpenDim varsource as stringVarsoure=“select * from users”If cnn.state=adStateOpen then set rs1.ActiveConnection then=cnnRs1.cursortype=adOpenStaticRs1.Open varsourceMsgbox “當(dāng)前記錄集中共有記錄”+trim(rs1.recordcount

12、)+ “個(gè)”Rs1.move rs1.RecordCountIf rs1.eof=true msgbox “已達(dá)記錄集的結(jié)尾”EndifRs1.closeCnn.closeEndifEnd Sub184.Field對(duì)象Field對(duì)象代表使用普通數(shù)據(jù)類(lèi)型的列主要屬性ActualSize屬性.字段的實(shí)際長(zhǎng)度DefinedSize屬性.指示field對(duì)象所定義的大小Name屬性 批示對(duì)象的名稱(chēng)Value屬性 指示對(duì)象的值19一般用Fields集合來(lái)表示Recordset對(duì)象中的所有Field對(duì)象.Fields集合的使用方法 設(shè)rs是一個(gè)Recordset對(duì)象,則此記錄集的第i個(gè)字段用rs.Field

13、s(0)表示Fields集合只有一個(gè)屬性Count 20Fields集合的使用方法Private Sub Form_Load() Dim cnn As New ADODB.ConnectionDim rs1 As New ADODB.Recordsetcnn.ConnectionString = Provider=SQLOLEDB.1;Password=sa;User ID=sa;Initial Catalog=UserMan;Data Source=;cnn.Open 21Dim varSource As String varSource = SELECT * FROM Users ORDE

14、R BY UserIdIf cnn.State = adStateOpen Then Set rs1.ActiveConnection = cnn rs1.CursorType = adOpenStaticrs1.Open varSourceMsgBox 表Users共有 + Trim(rs1.Fields.Count) + 個(gè)字段 22i = 0 Do While i rs1.Fields.Count MsgBox 第 + Trim(i + 1) + 個(gè)字段的名稱(chēng)為: + Trim(rs1.Fields(i).Name) _ + Chr(13) + 字段定義長(zhǎng)度為: + Trim(rs1.F

15、ields(i).DefinedSize) _ + Chr(13) + 字段實(shí)際長(zhǎng)度為: + Trim(rs1.Fields(i).ActualSize)23If rs1.EOF = False Then MsgBox 此字段的當(dāng)前值為: + Trim(rs1.Fields(i).Value) Else MsgBox 此字段沒(méi)有當(dāng)前值 End If i = i + 1 Looprs1.Closecnn.Close End IfEnd Sub24VB訪問(wèn)數(shù)據(jù)庫(kù)控件ADO Data控件常用屬性BOF EOFConnectionstringMaxRecordsModePasswordRecordse

16、t 通過(guò)Select語(yǔ)句返回的查詢(xún)結(jié)果保存在Recordset屬性中25RecordSource數(shù)據(jù)記錄源,可以是表、視圖、或Select語(yǔ)句等,查詢(xún)結(jié)果保存在Recordset屬性中UserName 連接到數(shù)據(jù)源的用戶(hù)26ADO Data控件示例查看用戶(hù)27DataList控件DataCombo控件DataList控件是數(shù)據(jù)綁定列表框。它需要指定的一個(gè)ADO Data數(shù)據(jù)源,并使用數(shù)據(jù)源中的一個(gè)字段來(lái)填充。 DataCombo控件是數(shù)據(jù)綁定組合框。28常用屬性BoundColumn 返回或設(shè)置綁定數(shù)據(jù)源中的一個(gè)源字段名稱(chēng)。BoundText 返回或設(shè)置由BoundColumn屬性指定的字段的

17、值。DataField返回或設(shè)置綁定的字段名DataSource 返回或設(shè)置綁定的數(shù)據(jù)源ListField返回或設(shè)置綁定Recordset對(duì)象中,的字段名,這個(gè)對(duì)象由RowSource屬性指定,用于填充DataCombo控件或DataList控件的列表部分。29RowSource 設(shè)置一個(gè)指定ADO Data控件的值,DataList控件或Datacombo控件的列表由這個(gè)ADO Data控件填充SelectedItem 返回被選中的記錄值。30Datagrid控件常用屬性AllowAddNew 等于True時(shí),可向Recordset對(duì)象添加新記錄AllowDelete AllowUpdata 類(lèi)似ColumnHeaders 等于True時(shí),顯示列標(biāo)題Columns返回表格中column對(duì)象的集合DataSource綁定的數(shù)據(jù)源31HeadFont 列標(biāo)題的字體HeadLines列標(biāo)題文本的行數(shù)常用的事件AfterColEdit 完成網(wǎng)格

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論