vb用adodb链接mysql找不到_VB使用ADODB操作数据库的常用方法
ADO常用方法
下面是我所掌握的使用ADO對(duì)數(shù)據(jù)庫(kù)操作的一些常用方法,主要是提供給初學(xué)者作為參考,有不對(duì)的地方請(qǐng)指正。如有補(bǔ)充不勝榮幸
準(zhǔn)備工作========DimconnAsNewADODB.Connection'創(chuàng)建一個(gè)?Connection?實(shí)例,在這里使用New等于將Dim和Set合并為一段代碼執(zhí)行DimrsAsADODB.Recordset'創(chuàng)建一個(gè)?Recordset?實(shí)例,不使用New?是因?yàn)?#xff0c;經(jīng)常需要重復(fù)使用Set,因此沒(méi)必要在這里使用DimCnStrAsString,?SqlAsString'創(chuàng)建兩個(gè)字符串變量分別存放兩個(gè)集合的SQL語(yǔ)句代碼段1、裝載數(shù)據(jù)庫(kù)(不屬于Recordset集合)=============DimFileNamw$,?DbIp$,?DbName$,?DbUser$,?DbPw$'以上5個(gè)字符串變量分別表示文件路徑和文件名、數(shù)據(jù)庫(kù)地址、數(shù)據(jù)庫(kù)名、數(shù)據(jù)操作員用戶名、操作員密碼FileName=App.Path&"\'數(shù)據(jù)庫(kù)名'"DbIp="數(shù)據(jù)庫(kù)地址"DbName="數(shù)據(jù)庫(kù)名"DbUser="數(shù)據(jù)操作員用戶名"DbPw="操作員密碼"'以上變量根據(jù)數(shù)據(jù)庫(kù)類(lèi)型的不同而不同,有可能只需要1至兩個(gè)變量'1)連接Access數(shù)據(jù)庫(kù):'-------------------CnStr="PROVIDER=microsoft.jet.oledb.3.51;persist?security?info?=false;data?source="&FileName&";Jet?OLEDB:Database?Password="&DbPw'2)連接Oracle數(shù)據(jù)庫(kù):'-------------------CnStr="PROVIDER=MSDAORA.1;Password="&DbPw&";User?ID="&DbUser&";Data?Source="&FileName&";Persist?Security?Info=True"'其中:'PASSWORD:??????密碼'User?ID:???????用戶號(hào)'Data?Source:???數(shù)據(jù)庫(kù)名'Persist?Security?Info:'Provider:'3)連接VF的DBF庫(kù):'----------------CnStr="PROVIDER=MSDASQL.1;Persist?Security?Info=False;Driver={Microsoft?Visual?FoxPro?Driver};UID="&DbUser&";SourceDB="&FileName&";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"'4)連接SQL的數(shù)據(jù)庫(kù)'------------------CnStr="PROVIDER=MSDataShape;Data?PROVIDER=MSDASQL;uid="&DbUser&";pwd="&DbPw&";DRIVER=SQL?Server;DATABASE="&DbName&";WSID=GQSOFT;SERVER="&DbIP'也可以使用這段簡(jiǎn)易代碼?CnStr?=?"Provider=SQLOLEDB;Data?Source="?&?DbIp?&?";DATABASE="?&?DbName?&?";UID="?&?DbUser?&?";pwd="?&?DbPwConn.Open?cnstr'使用?Connection?集合的?Open?方法?與數(shù)據(jù)庫(kù)建立連接2、Recordset集合的常用方法=========================='1)打開(kāi)一個(gè)表'------------Sql="select?*?from?表名"'SQL查詢(xún)語(yǔ)句Setrs=NewADODB.Recordset'新建一個(gè)實(shí)例rs.Open?Sql,?conn'使用?Open?方法打開(kāi)數(shù)據(jù)庫(kù)中的一個(gè)表'注意,這種打開(kāi)方式只能使用?rs.MoveNext?(即,向后移動(dòng)行坐標(biāo))而不能像其他方向,并且不能修改數(shù)據(jù)內(nèi)容'
'rs.Open?Sql,?conn,1?'雖然只加了個(gè)“1”,但這種方法可以向任何方向移動(dòng)行坐標(biāo)。'
'以下參數(shù)代表了這個(gè)可選值的含義'0?=?adOpenForwardOnly?(默認(rèn)值)打開(kāi)僅向前類(lèi)型游標(biāo)。'1?=?adOpenKeyset???????打開(kāi)鍵集類(lèi)型游標(biāo)。'2?=?adOpenDynamic??????打開(kāi)動(dòng)態(tài)類(lèi)型游標(biāo)。'3?=?adOpenStatic???????打開(kāi)靜態(tài)類(lèi)型游標(biāo)。'
'雖然使用以上方法可以可以實(shí)現(xiàn)行坐標(biāo)(游標(biāo))的任意移動(dòng),但是仍然無(wú)法寫(xiě)入數(shù)據(jù)。因此需要進(jìn)一步的對(duì)Open?方法進(jìn)行完善'rs.Open?Sql,?conn,?1,?3??'后面的3是確定讀寫(xiě)權(quán)限的'以下參數(shù)代表了這個(gè)可選值的含義'1?=?adLockReadOnly????????(默認(rèn)值)只讀?—?不能改變數(shù)據(jù)。'2?=?adLockPessimistic?????保守式鎖定(逐個(gè))?—?在編輯時(shí)立即鎖定數(shù)據(jù)源的記錄。'3?=?adLockOptimistic??????開(kāi)放式鎖定(逐個(gè))?—?只在調(diào)用?Update?方法時(shí)才鎖定記錄。'4?=?adLockBatchOptimistic?開(kāi)放式批更新?—?用于批更新模式(與立即更新模式相對(duì))。'
'2)讀寫(xiě)數(shù)據(jù)'----------'增加一行記錄并對(duì)新記錄的內(nèi)容進(jìn)行修改并保存可以如下寫(xiě)法rs.AddNew'增加一行記錄rs("...")="..."'數(shù)據(jù)讀寫(xiě)操作...
rs.UpDate'保存寫(xiě)入資料,如果使用只讀權(quán)限,則不能使用這個(gè)方法rs.Close'這個(gè)方法用來(lái)關(guān)閉你所代開(kāi)的表,如果不使用這個(gè)方法也可以,但是數(shù)據(jù)庫(kù)仍然認(rèn)為你在對(duì)標(biāo)進(jìn)行鎖定,可造成數(shù)據(jù)庫(kù)負(fù)擔(dān)過(guò)重2、對(duì)數(shù)據(jù)進(jìn)行篩選和排序=======================Sql="select?*?from?表名"'SQL查詢(xún)語(yǔ)句'以上為打開(kāi)一個(gè)表的所有內(nèi)容Sql="select?top?50?*?from?表名"'SQL查詢(xún)語(yǔ)句'以上為只打開(kāi)前50行的記錄Sql="select?top?50?列名1,列名2,列名5?from?表名"'SQL查詢(xún)語(yǔ)句'以上為只打開(kāi)前50行的記錄,并且只打開(kāi)第1、2、5列數(shù)據(jù)Sql="select?*?from?表名?where?列名1='"&字段&"'"'SQL查詢(xún)語(yǔ)句'以上為一個(gè)簡(jiǎn)單的篩選,表示打開(kāi)的內(nèi)容必須符合[列名1='"?&?字段?&?"'"]的內(nèi)容'需要注意的是,數(shù)據(jù)庫(kù)列的類(lèi)型必須匹配,比如字符串類(lèi)型需要以單引號(hào)括起'而數(shù)字類(lèi)型則不能用單引號(hào)括起'另外SQL語(yǔ)句還支持通配符,例如?列名1?like?'%"?&?字段?&?"%'"?表示包含[字段]'在表達(dá)式中的匹配'??_(下劃線)?任何單一字符'*?or?%????????零個(gè)或多個(gè)字符'#?????????????任何單一數(shù)字(0?—?9)'[charlist]????任何在字符表中的單一字符'[!charlist]???任何不在字符表中的單一字符'注:根據(jù)數(shù)據(jù)庫(kù)的不同?、_和*、%的應(yīng)用有所差別,比如SQL只使用%?和?_?分別代表多個(gè)字符和單一字符Sql="select?*?from?表名?where?列名1='"&字段&"'?ORDER?BY?字段1?ASC"'對(duì)查詢(xún)結(jié)果進(jìn)行升序排列Sql="select?*?from?表名?where?列名1='"&字段&"'?ORDER?BY?字段1?DESC"'對(duì)查詢(xún)結(jié)果進(jìn)行降序排列Sql="select?*?from?表名?where?列名1='"&字段&"'?ORDER?BY?字段1?DESC,?ORDER?BY?字段2?DESC"'對(duì)查詢(xún)結(jié)果進(jìn)行多維降序排列(速度奇慢,不推薦使用)3、Recordset集合的常用屬性方法==============================rs.BOF'是否游標(biāo)在最上邊rs.EOF'是否游標(biāo)在最下邊rs.RecordCount'記錄集的行數(shù)(如果使用像前類(lèi)型的游標(biāo),可能返回不準(zhǔn)確)rs.AddNew'新建一行記錄rs.Update'保存當(dāng)前行被修改的記錄rs.Delete'刪除當(dāng)前行rs.Close'關(guān)閉記錄集4、Fields集合的一些屬性的解釋============================='以下為簡(jiǎn)寫(xiě),正常情況需要rs.Fileds.。。。但是Fields屬于Recordset的一個(gè)默認(rèn)集合,因此可以省略rs()'括號(hào)內(nèi)可以是列名也可以是列的序號(hào)例如:rs("姓名")、rs(3)?都是是可以的rs(3).Name'返回列名rs(3).Type'返回列的類(lèi)型rs(3).Value'返回當(dāng)前行的值rs.Fields.Count'返回列數(shù)
總結(jié)
以上是生活随笔為你收集整理的vb用adodb链接mysql找不到_VB使用ADODB操作数据库的常用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 珠山瓷砖批发市场在哪里?
- 下一篇: java 文件存储_文件存储学生信息(J