版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
VB程序設(shè)計與數(shù)據(jù)管理樂清中學(xué)李曙強3863365@限定性選修模塊增加算法在數(shù)據(jù)管理中的應(yīng)用必修中的數(shù)據(jù)庫相關(guān)知識枚舉、排序、查找的綜合運用VB訪問數(shù)據(jù)庫,建立數(shù)據(jù)庫連接讀取數(shù)據(jù)庫用數(shù)組存儲部分數(shù)據(jù)查找、排序等算法,對數(shù)據(jù)庫中的數(shù)據(jù)進行簡單統(tǒng)計exampleDimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimnAsIntegerDima(200)AsSinglePrivateSubCommand1_Click()conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="&App.Path&"\rizhi.accdb"conn.OpenSetrs.ActiveConnection=connrs.Open"select*fromgnipc"n=0DoWhileNotrs.EOFn=n+1a(n)=rs.Fields(“登錄次數(shù)")rs.MoveNextLooprs.Closeconn.CloseEndSubWindows732位VisualBasic6.0SP6(完全安裝版)Access2010軟硬件環(huán)境Access數(shù)據(jù)庫文件版本轉(zhuǎn)換Access2000,2003*.mdbAccess2010*.accdb在access2010中從mdb轉(zhuǎn)為accdb格式目錄二、ADO數(shù)據(jù)訪問技術(shù)三、ADO對象使用實例一、SQL查詢基礎(chǔ)SQL語言及其功能、特點SQL:StructuredQueryLanguage結(jié)構(gòu)化查詢語言,是對數(shù)據(jù)操作的命令集。特點:由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,所有用SQL編寫的程序都是可以移植的。(Access,SqlServer等數(shù)據(jù)庫)SQL功能:可以面向數(shù)據(jù)庫執(zhí)行查詢、從數(shù)據(jù)庫取回數(shù)據(jù)、可在數(shù)據(jù)庫中插入新的紀錄、可更新數(shù)據(jù)庫中的數(shù)據(jù)、可從數(shù)據(jù)庫刪除記錄、可創(chuàng)建新數(shù)據(jù)庫、可在數(shù)據(jù)庫中創(chuàng)建新表等。其功能可歸結(jié)為查詢、定義、操縱和控制等幾個方面:SQL功能常用語句數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE,DROP數(shù)據(jù)操縱INSERT,DELETE,UPDATE數(shù)據(jù)控制GRANT,REVOKESQL和SQLSERVER的區(qū)別SQL(structuredquerylanguage)結(jié)構(gòu)化查詢語言。它是一種標準,不是一種軟件。SQLServer是數(shù)據(jù)庫管理系統(tǒng)的一種它是一種軟件,這種軟件在遵循SQL這種標準,很多數(shù)據(jù)庫管理軟件及開發(fā)工具都支持SQL這種標準。Access中Sql查詢可在Access中利用查詢中的Sql視圖編寫查詢語句,練習(xí)、校對Sql查詢語句SELECT語句的用法SELECT[DISTINCT]目標列表達式1[AS別名][,目標列表達式2][AS別名],…FROM表名1[,表名2]…[WHERE條件表達式][GROUPBY列名1[HAVING組條件表達式]][ORDERBY列名2[ASC|DESC]];功能從數(shù)據(jù)庫中查詢數(shù)據(jù),并以表格形式返回查詢結(jié)果。語法單表查詢1查詢loginCount表全部記錄: SELECT*FROMloginCount查詢loginCount表部分字段:SELECT帳號asqq,登錄時間asqqtimeFROMloginCount單表查詢2where使用查詢loginCount表中登錄時間超過650的記錄SELECT帳號asqq,登錄時間asqqtimeFROMloginCountwhere登錄時間>650查詢loginCount表中qq號碼為333的記錄SELECTloginCount.帳號ASqq,loginCount.登錄時間ASqqtimeFROMloginCountWHERE帳號=‘333’VB中Sql語句書寫注意點Sqlstr=“select*fromt_userwhereu_name=‘張三’”“字符串1”&“字符串2”&“字符串3”不建議用+號連接字符串Username=“張三”Sqlstr=“select*fromt_userwhereu_name=‘”&username&“’”1.書寫最熟悉的sql語句2.找斷點,加雙引號,&&斷開3.加入vb中表達式4.Msgobxdebug.pringt等
輸出sqlstr進行檢查
把下面的語句題換成變量的寫法:
strsql=“Insertintomytable(username)values(‘張紅’)”
第一步:先把張紅抹去,在原位置加兩個引號
strsql=“Insertintomytable(username)values(‘”“’)”
第二步:在中間添加兩個連接符&
strsql=“Insertintomytable(username)values(‘”&&“’)”
第三步:把變量寫在兩個連接符之間
strsql=“Insertintomytable(username)values(‘”&thename&“’)”多表查詢利用where一個數(shù)據(jù)庫中的多個數(shù)據(jù)表之間一般都存在某種內(nèi)在聯(lián)系,它們共同提供有用信息。若一個查詢同時涉及兩個及以上的表,稱之為多表查詢或鏈接查詢。兩張表間有一個相同的字段,才能進行有效的多表查詢。查詢時列名前加表名或表別名前輟(as),如果字段在兩個表中是唯一的可以不加。刪除數(shù)據(jù)--DELETE語句DELETEFROM表名[WHERE條件]功能DELETE語句的功能為刪除表中指定的記錄。語法DELETE語句對滿足WHERE子句中條件的所有記錄執(zhí)行刪除操作。省略WHERE子句,則刪除表中全部記錄,但表結(jié)構(gòu)仍在,即DELETE語句刪除的是表中的數(shù)據(jù)。應(yīng)用DELETE語句刪除部分記錄【例】刪除用戶名為“l(fā)ee”的所有記錄。DELETEFROMTravelPlanWHEREUserName="lee";分析lee所在兩條記錄均被刪除,記錄數(shù)由4變?yōu)?。數(shù)據(jù)更新--UPDATE語句UPDATE表名SET字段1=表達式[,字段2=表達式2,……,字段N=表達式N][WHERE條件]功能UPDATE語句的功能是更新表中指定記錄中指定字段的值。語法UPDATE語句對指定表中滿足WHERE子句中條件的記錄進行修改,具體修改內(nèi)容在SET子句中設(shè)定。表達式的值必須與其對應(yīng)字段的數(shù)據(jù)類型吻合。UPDATE的操作是不可逆的,即做出的修改是無法撤消的。ADO數(shù)據(jù)訪問技術(shù)(一)ADO數(shù)據(jù)模型(二)Connection對象及應(yīng)用(三)Command對象及應(yīng)用(四)Recordset對象及應(yīng)用
一、ADO對象模型
ADO(ActiveXDataObjects)數(shù)據(jù)庫訪問技術(shù),采用OLEDB的數(shù)據(jù)訪問模式。向應(yīng)用程序提供一個統(tǒng)一的數(shù)據(jù)訪問方法,不僅可以訪問Access,SQLServer數(shù)據(jù)庫,還可以訪問Excel,文本文件等基于OLEDB之上的對象模型,半酣可以被OLEDB標準接口描述的數(shù)據(jù)類型。(優(yōu)點:應(yīng)用程序移植)1.ADO對象模型組成三個對象成員:
ConnectionCommandRecordset幾個集合對象:
Errors
Parameters
Fields
Properties指定連接數(shù)據(jù)來源發(fā)出命令信息從數(shù)據(jù)源獲取所需數(shù)據(jù)查詢命令的返回的記錄集訪問數(shù)據(jù)源時所返回的錯誤信息與命令對象有關(guān)的參數(shù)記錄集中某個字段的信息每個ADO對象都有一組惟一的屬性,用來描述或控制對象2.ADO對象基本操作流程(1)初始化COM庫,引入ADO庫定義文件;(2)用Connection對象連接數(shù)據(jù)庫;(3)利用建立好的連接,通過Connection、Command對象執(zhí)行SQL命令,或利用Recordset對象取得結(jié)果記錄集進行查詢、處理;(4)使用完畢后關(guān)閉連接釋放對象。3.引入ADO庫定義文件在VisualBasic程序中使用ADO對象,必須先為當前工程引用ADO的對象庫。方法:執(zhí)行“工程”菜單中“引用”命令,彈出“引用”對話框,如圖所示。單擊“確定”選擇該選項(不同環(huán)境下ADO的版本號可能不同)二、Connection對象Connection用來創(chuàng)建到數(shù)據(jù)庫建立連接。1.常用屬性ConnectionString屬性,指定用于建立連接數(shù)據(jù)源的信息。
【例】創(chuàng)建到數(shù)據(jù)庫rizhi.accdb的鏈接。
DimconnAsADODB.Connection
Setconn=newADODB.Connectionconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+App.Path+"\rizhi.accdb“
2行代碼等同于DimconnAsnewADODB.ConnectionAccess不同版本連接語句Access2003:conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\rizhi.mdb"Access2010:
conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+App.Path+"\rizhi.accdb”Mode屬性Mode屬性,指定Connection對象修改數(shù)據(jù)的權(quán)限。其值如下:常量 說明adModeUnknown默認值。表明權(quán)限尚未設(shè)置或無法確定adModeRead 只讀權(quán)限adModeWrite 只寫權(quán)限adModeReadWrite 讀寫權(quán)限adModeShareDenyRead 禁止其他用戶使用讀權(quán)限打開連接adModeShareDenyWrite 禁止其他用戶使用寫權(quán)限打開連接adModeShareExclusive 禁止其他用戶打開連接adModeShareDenyNone 允許其他人以任何權(quán)限打開連接State屬性State屬性,返回Connection對象的狀態(tài)。其值如下:常量 說明adStateClosed 對象已關(guān)閉adStateOpen
對象已打開adStateConnecting
對象正在連接adStateExecuting
對象正在執(zhí)行命令adStateFetching
正在檢索對象的行2.Connection對象的常用方法Open方法,打開到數(shù)據(jù)源的連接。語法如下:Connection對象.OpenConnectionString,UserID,PassWord,Options
以下參數(shù)均為可選項ConnectionString
:包含連接信息的字符串。UserID
:包含建立連接時所使用的用戶名稱。Password
:字符串,包含建立連接時所用密碼。Options
:設(shè)置為adConnectAsync,則異步打開連接;
設(shè)置為ConnectComplete當連接可用時將調(diào)用該事件。Close方法,關(guān)閉到數(shù)據(jù)源的連接。Execute方法,在連接上執(zhí)行命令。Cancel方法,取消Open或Execute方法的調(diào)用如果設(shè)置了Connection對象的ConnectionString等屬性,Open方法就不需要設(shè)置參數(shù)了3.Connection對象應(yīng)用示例【例】使用Connection對象鏈接到數(shù)據(jù)庫rizhi.accdb。PrivateSubForm_Load()DimconnAsNewADODB.Connectionconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;
DataSource="+App.Path+"\rizhi.accdb"
conn.OpenIfconn.State=adStateOpenThenMsgBox"鏈接已打開"conn.CloseIfconn.State=adstatecolsedThenMsgBox"鏈接已關(guān)閉"EndSub創(chuàng)建Connection對象conn鏈接數(shù)據(jù)庫路徑打開到數(shù)據(jù)庫的鏈接判斷鏈接的狀態(tài)關(guān)閉到數(shù)據(jù)庫的鏈接判斷鏈接的狀態(tài)四、Recordset對象Recordset對象表示從數(shù)據(jù)庫返回的一系列記錄的集合。一個Recordset對象由記錄和列(字段)組成。通過Recordset可以對記錄及組成記錄的列進行各種操作。1.Recordset對象的常用屬性(1)ActiveConnection屬性,設(shè)置或返回Recordset對象所屬的Connection對象。(2)AbsolutePosition屬性,指定Recordset對象中當前記錄的序號位置。(3)BOF屬性,若當前的記錄位置在第一條記錄之前,則返回true,否則返回fasle。
EOF屬性,若當前記錄的位置在最后的記錄之后,則返回true,否則返回fasle。1.Recordset對象的常用屬性(4)RecordCount屬性,返回Recordset對象中記錄的當前數(shù)目。(5)CursorType屬性,設(shè)置或返回一個Recordset對象的游標類型。常
量值說
明AdOpenForwardOnly0默認值,打開僅向前類型游標,只能用MoveNext讀取,打開的同時建立的數(shù)據(jù)庫的備份,不能即時體現(xiàn)數(shù)據(jù)庫記錄狀態(tài),比如記錄的編輯和增刪。AdOpenKeyset1打開鍵集類型游標,可上下滾動游標,給打開的記錄創(chuàng)建了一個關(guān)鍵字列表,類似記錄集的描述,訪問的時候才去取得數(shù)據(jù)值,就是說可以即時看到修改信息,但是不能即時得到數(shù)據(jù)是否刪除的信息,因為這個關(guān)鍵字列表是事先初始化好的。程序中常用此類型。AdOpenDynamic2打開動態(tài)類型游標,完全可滾動游標,可得到數(shù)據(jù)的最新狀態(tài),但執(zhí)行效率也會有所降低。AdOpenStatic3打開靜態(tài)類型游標,完全可滾動游標,它先將數(shù)據(jù)庫備份文件之后進行操作,可以斷開數(shù)據(jù)庫連接后繼續(xù)使用。(6)LockType屬性,指定打開Recordset對象使用的鎖定類型,其值如下表所示。常
量值說
明AdLockReadOnly1默認值,只讀鎖AdLockPessimistic2悲觀鎖,操作者打開之后立即上鎖,直到修改完成或者放棄修改為止,此時其他人無法編輯AdLockOptimistic3樂觀鎖,當記錄將要被更新的時候才開始上鎖,但是不能保證在提交修改之前是否有人改動過AdLockBatchOptimistic4批量樂觀鎖(7)Sort屬性,設(shè)置排序字段。(8)Filter屬性,設(shè)置Recordset對象中的篩選條件。2.Recordset對象常用方法(1)AddNew方法,創(chuàng)建和初始化新記錄,其語法為:
Recordset對象.AddNewFieldList,ValuesAddNew方法為記錄集添加新記錄后,需使用UpDate將所添加的數(shù)據(jù)存儲到數(shù)據(jù)庫中。(2)Delete方法,刪除當前記錄或記錄組。(3)Move方法,移動Recordset對象中當前記錄的位置。(4)MoveFirst、MoveLast、MoveNext和MovePrevious方法,移動到指定Recordset對象中的第一條、最后一條、下一條或上一條記錄,使該記錄成為當前記錄。(5)Requery方法,重新執(zhí)行對象所基于的查詢,更新Recordset對象中的數(shù)據(jù)。(6)Update方法,保存對Recordset對象當前記錄所做修改。CancelUpdate方法,可取消對當前記錄修改。字段列表FieldList中字段對應(yīng)的值2.Recordset對象常用方法Open方法,打開代表基本表、查詢的結(jié)果或保存的Recordset中記錄的游標。其語法如下:Recordset對象.OpenSource,ActiveConnection,CursorType,LockType,Options
以下均為可選項
Source為記錄源,可以是SQL語句、表名等;
ActiveConnection指定相應(yīng)的Connection對象;
CursorType指定打開Recordset對象使用的指針類型。3.Recordset對象應(yīng)用示例【例】
DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimstrSQLAsStringconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0; DATASource="&App.Path&"\users1.accdb"strSQL="SELECT*FROMusers"conn.OpenSetrs.ActiveConnection=connrs.LockType=adLockOptimisticrs.CursorType=AdOpenKeysetrs.OpenstrSQL增加記錄rs.AddNewrs.Fields(1)=Text1rs.Fields(2)=Text2rs.Updateconn.CloseSetconn
Nothing數(shù)據(jù)有效性檢查前一條、后一條按鈕代碼PrivateSubCommand2_Click()rs.MovePreviousCommand3.Enabled=TrueIfrs.AbsolutePosition=1ThenCommand1.Enabled=FalseCommand2.Enabled=FalseEndIfText1=rs.Fields(0)……Text6=rs.Fields(5)EndSubPrivateSubCommand3_Click()rs.MoveNextCommand1.Enabled=TrueCommand2.Enabled=TrueIfrs.EOFThenCommand3.Enabled=Falsers.MoveLastExitSubEndIfText1=rs.Fields(0)……Text6=rs.Fields(5)EndSub前一條后一條ADO中command對象ADODB對象模型Command對象提交給數(shù)據(jù)源的命令,傳遞SQL命令Parameter對象用來向SQL語句傳遞參數(shù)Property對象指明一個ADO對象的屬性Command對象簡介使用Command對象查詢數(shù)據(jù)庫并返回Recordset對象中的記錄,以便執(zhí)行大量操作或處理數(shù)據(jù)庫結(jié)構(gòu)
Command對象用于執(zhí)行數(shù)據(jù)庫操作命令,使用Command對象的ActiveConection屬性同樣可以創(chuàng)建一個連接。例如"Activeconection"屬性被設(shè)置為一個Connection對象的引用,那么Command對象就建立一個新的連接,并使用這個新連接。用Command對象執(zhí)行一個查詢子串,可以返回一個記錄集,也可以返回多個記錄集,甚至可以不返回記錄集。Command對象與RecordSet對象區(qū)別Command對象:主要是向SQL語句、StoredProcude傳遞參數(shù),依靠SQL的強大功能來完成數(shù)據(jù)庫的操作;Command的性能更優(yōu)越一些,特別是在大量記錄添加情況下。RecordSet對象:封裝了數(shù)據(jù)對象、并提供了一系列的方法和屬性來簡化數(shù)據(jù)庫的編程。復(fù)雜數(shù)據(jù)處理,memo備注字段,
time()PKCommand對象3個重要屬性Connection屬性設(shè)置Command所使用的Connection例:Setcmd.ActiveConnection=connCommandText屬性設(shè)置對數(shù)據(jù)源執(zhí)行SQL語句或存儲過程。例:cmd.CommandText="deletefromyonghu
WHERE帳號='xxxxxx'“AdCmdText時,表示包含命令文本,AdCmdTable時,表示包含一個表的名字,AdCmdStoredProc時,表示包含存儲過程名。CommandType屬性設(shè)置指定的CommandText類型例:cmd.CommandType=adCmdText查詢字串是一個SQL語句:"adCmdText";查詢字串是一個存儲過程,"adCmdStoreProc";查詢字串是一個表名,"adCmdTable";Command對象操作實例DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimcmdAsNewADODB.Commandconn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時占用土地租賃協(xié)議
- 快件賒銷協(xié)議書
- 2024建設(shè)工程補充合同范本
- 求職意向書樣本-書信范本
- 2024幼兒園保安聘用合同
- 勞務(wù)施工安全協(xié)議書范本2024年
- 浙江省初中名校七年級上學(xué)期語文期中試卷5套【附答案】
- 吉林省雜糧采購合同
- 4.1 夯實法治基礎(chǔ) (大單元教學(xué)設(shè)計) 2024-2025學(xué)年統(tǒng)編版道德與法治九年級上冊
- 家庭雇傭保姆合同模板
- 煤礦皮帶智能化集控系統(tǒng)PPT教學(xué)講授課件
- 個人財務(wù)管理系統(tǒng)的設(shè)計與實現(xiàn)--論文
- 分數(shù)乘除法整理復(fù)習(xí)(課堂PPT)
- 杭州會展業(yè)發(fā)展與對策研究文獻綜述
- 小學(xué)六年級英語上冊《Unit 1 How can I get there》教案
- 完整版方法驗證報告模板最終
- 電力管道資料表格(共30頁)
- 大班科學(xué)活動教案《豆豆家族》含PPT課件
- 【精品試卷】部編人教版(統(tǒng)編)一年級上冊語文第一單元測試卷含答案
- 金屬有機化學(xué)ppt課件
- 數(shù)學(xué)說題稿(共4頁)
評論
0/150
提交評論