版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、WINDOWS程序設(shè)計(jì)(VB)上海交通大學(xué)網(wǎng)絡(luò)教育學(xué)院陳澤宇 博士、副教授2第0章 概述(補(bǔ)充) 第1章 緒論 第2章 創(chuàng)建第一個Windows應(yīng)用程序第3章 數(shù)據(jù)類型、變量和表達(dá)式第4章 選擇結(jié)構(gòu)第5章 循環(huán)結(jié)構(gòu) 第6章 數(shù)組 第7章 過程 第8章 類 第9章 菜單與圖形 第10章 文件 第11章 Form窗體和對話框 第12章 Web編程基礎(chǔ)第13章 初步第14章 Web控件 第15章 數(shù)據(jù)訪問 第16章 初步 3第16章 初步16.1 簡介16.2 在Visual Basic中訪問數(shù)據(jù)庫16.3 數(shù)據(jù)集16.4 修改和更新數(shù)據(jù)庫16.5 綜合示例:DataGrid(補(bǔ)充)416.1 簡介
2、16.1.1 的工作原理(補(bǔ)充) 16.1.2 的優(yōu)點(diǎn)5 是.NET平臺內(nèi)用于訪問數(shù)據(jù)源的一組類 具有全新的對象模型,該模型使用XML作為主要的數(shù)據(jù)傳輸格式,同時它使得用戶對無關(guān)聯(lián)數(shù)據(jù)的操作變得更加簡單比起ADO來說, 的主要優(yōu)點(diǎn)在于:編程更簡單、性能更高、伸縮性更強(qiáng)、對單個數(shù)據(jù)源特性的依賴更小,以及與其它平臺的交互性更強(qiáng)616.1.1 的工作原理(補(bǔ)充)1. 數(shù)據(jù)提供程序(Data Provider) 2. 數(shù)據(jù)集(DataSet) 7 的兩個核心組件數(shù)據(jù)提供程序(Data Provider)數(shù)據(jù)集(DataSet)81. 數(shù)據(jù)提供程序(Data Provider)設(shè)計(jì)目的:為了實(shí)現(xiàn)對數(shù)據(jù)的
3、快速訪問包括Connection、Command、DataReader和DataAdapter對象.NET框架提供了4個數(shù)據(jù)提供程序SQL Server數(shù)據(jù)提供程序OLE DB數(shù)據(jù)提供程序ODBC數(shù)據(jù)提供程序Oracle數(shù)據(jù)提供程序9Connection對象提供與數(shù)據(jù)源的連接Command對象在用Connection對象成功連接數(shù)據(jù)庫后,可以用Command對象對數(shù)據(jù)庫進(jìn)行操作,如對數(shù)據(jù)進(jìn)行新增、刪除、修改等DataReader對象從數(shù)據(jù)源中提供高性能的數(shù)據(jù)流10DataAdapter(數(shù)據(jù)適配器)對象提供連接DataSet對象和數(shù)據(jù)源的橋梁DataAdapter使用Command對象在數(shù)據(jù)源
4、中執(zhí)行SQL命令,以便將數(shù)據(jù)加載到DataSet中,并使對DataSet中數(shù)據(jù)的更改與數(shù)據(jù)源保持一致112. 數(shù)據(jù)集(DataSet)設(shè)計(jì)目的:為了實(shí)現(xiàn)獨(dú)立于任何數(shù)據(jù)源的數(shù)據(jù)訪問DataSet不是一個單獨(dú)的表,而是一組包含了表結(jié)構(gòu)數(shù)據(jù)的表,同時它還包括表之間的所有關(guān)系DataSet對象是一個存儲在內(nèi)存中的離線數(shù)據(jù)庫,它并未與數(shù)據(jù)庫建立即時的連接DataSet對象專門用來存儲從數(shù)據(jù)源中讀出的數(shù)據(jù),無論是SQL Server數(shù)據(jù)庫還是Access數(shù)據(jù)庫,在DataSet中存儲方式都是一致的,用戶無法從DataSet中判斷讀取的數(shù)據(jù)庫類型12通常在進(jìn)行數(shù)據(jù)操作時,用戶將來自數(shù)據(jù)庫的數(shù)據(jù)填入DataS
5、et中,然后再對其進(jìn)行操作當(dāng)用戶更改了數(shù)據(jù)并準(zhǔn)備將更改結(jié)果發(fā)送回?cái)?shù)據(jù)源時,DataSet可以一次性完成發(fā)送操作由于DataSet的智能化,只有數(shù)據(jù)中被更改的部分才會被發(fā)送回?cái)?shù)據(jù)庫1316.1.2 的優(yōu)點(diǎn)1.可伸縮性如果用戶使用DataSet對象,則 就是基于非連接數(shù)據(jù)訪問,這表明使用數(shù)據(jù)庫連接的時間比較短2.數(shù)據(jù)源獨(dú)立性在 中,Recordset真正地獨(dú)立于數(shù)據(jù)源143.協(xié)同性因?yàn)?使用XML作為其標(biāo)準(zhǔn)的數(shù)據(jù)傳輸格式,因此與之進(jìn)行數(shù)據(jù)通信的軟件無須是 的一個組件甚至不必基于Windows平臺,而唯一的要求就是它能夠兼容XML4.強(qiáng)大的分類字段5.性能6.防火墻因?yàn)?利用XML傳輸數(shù)據(jù),所以數(shù)據(jù)
6、可以通過大多數(shù)防火墻1516.2 在Visual Basic中訪問數(shù)據(jù)庫16.2.1 Connection 對象(補(bǔ)充) 16.2.2 Command 對象(補(bǔ)充) 16.2.3 DataReader對象(補(bǔ)充) 16.2.4 完成dbTest2示例16當(dāng)需要從VB訪問數(shù)據(jù)庫時,VB程序是數(shù)據(jù)庫的客戶端在訪問數(shù)據(jù)庫之前首先需要連接到數(shù)據(jù)庫1716.2.1 Connection 對象(補(bǔ)充)要訪問數(shù)據(jù)庫,首先必須建立與數(shù)據(jù)庫的連接使用Connection對象創(chuàng)建和管理連接SqlConnection對象管理與SQL Server數(shù)據(jù)庫的連接OleDbConnection對象管理與可通過OLE DB
7、訪問的任何數(shù)據(jù)存儲區(qū)的連接OdbcConnection對象管理與通過使用連接字符串或ODBC數(shù)據(jù)源名稱創(chuàng)建的數(shù)據(jù)源的連接OracleConnection對象管理與Oracle數(shù)據(jù)庫的連接18連接字符串在建立連接時,通常要提供一些數(shù)據(jù)源的信息,如數(shù)據(jù)庫的名稱、數(shù)據(jù)庫所在的物理位置、用戶名、密碼等通過Connection對象的ConnectionString屬性來設(shè)置連接字符串19打開和關(guān)閉連接在對數(shù)據(jù)庫實(shí)際操作之前,首先需要打開連接,使用完后應(yīng)立即關(guān)閉,這是由Open和Close方法來完成的Open方法使用ConnectionString屬性中的信息聯(lián)系數(shù)據(jù)源并建立一個打開的連接Close方法關(guān)
8、閉連接如果正在使用DataAdapter或Command,則不必顯式打開和關(guān)閉連接當(dāng)調(diào)用這些對象的某個方法(例如DataAdapter的Fill或Update方法)時,該方法將檢查連接是否已打開。如果沒有,適配器將打開連接,執(zhí)行其邏輯,然后再關(guān)閉連接2016.2.2 Command 對象(補(bǔ)充)實(shí)際對數(shù)據(jù)庫的操作可以使用Command 對象來完成設(shè)置CommandText屬性該屬性是一個字符串,實(shí)際上就是一個完整的SQL語句例如: mandText = SELECT au_lname FROM authors21設(shè)置好CommandText屬性后需要指出該對象使用哪個連接例如: mand.Co
9、nnection = sqlcnMyDB2216.2.3 DataReader對象(補(bǔ)充)如果不需要DataSet所提供的功能,則可以使用DataReader以只讀方式返回?cái)?shù)據(jù)因?yàn)楣?jié)省了DataSet所使用的內(nèi)存,并省去了創(chuàng)建DataSet并填充其內(nèi)容所需的必要處理,所以可以提高應(yīng)用程序的性能2316.3 數(shù)據(jù)集16.3.1 DataSet對象16.3.2 DataAdapter對象16.3.3 填充數(shù)據(jù)集24使用DataReader可以直接從數(shù)據(jù)庫中讀取數(shù)據(jù),直接對數(shù)據(jù)庫執(zhí)行SQL語句,在此期間一直保持對數(shù)據(jù)庫的連接然而,這并不是最好的方式25在 的構(gòu)架下,并不以客戶端/服務(wù)器的兩層模式運(yùn)作
10、,通??梢圆捎枚鄬拥姆绞綄?shù)據(jù)庫操作,或者說 是面向非連接的簡單地講,可以將數(shù)據(jù)庫的數(shù)據(jù)一次性地從數(shù)據(jù)庫中取出來,存放在本地隨后的操作都在本地進(jìn)行,如對數(shù)據(jù)的修改、插入或刪除等最后,在必要的時候,將修改后的數(shù)據(jù)全部寫回到數(shù)據(jù)庫中最大好處就是降低了數(shù)據(jù)庫服務(wù)器的資源占用,減輕了數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān),同時也減少了網(wǎng)絡(luò)負(fù)擔(dān)2616.3.1 DataSet對象將數(shù)據(jù)庫中的數(shù)據(jù)傳輸?shù)奖镜睾螅?提供了DataSet對象來存儲數(shù)據(jù)DataSet用來存儲從數(shù)據(jù)庫中檢索的數(shù)據(jù),并保存到客戶機(jī)的內(nèi)存中DataSet中的數(shù)據(jù)實(shí)際與數(shù)據(jù)庫是斷開的,可以獨(dú)立于數(shù)據(jù)庫來操作數(shù)據(jù)可以將DataSet看作是一個便攜式的數(shù)據(jù)庫同
11、時,DataSet對象也并不和任何一個底層數(shù)據(jù)庫相關(guān)聯(lián),當(dāng)需要從DataSet向數(shù)據(jù)庫傳出或傳入數(shù)據(jù)時,需要使用DataAdapter(數(shù)據(jù)適配器)對象2716.3.2 DataAdapter對象DataAdapter像是數(shù)據(jù)源(數(shù)據(jù)庫)和DataSet之間的橋梁DataAdapter類有幾個屬性代表單個的命令對象,如 mand、 mand、 mand等在將數(shù)據(jù)通過數(shù)據(jù)適配器傳遞時,數(shù)據(jù)適配器使用這些命令和數(shù)據(jù)庫交換記錄對數(shù)據(jù)適配器而言,最主要的問題是如何將數(shù)據(jù)映射到源數(shù)據(jù)庫2816.3.3 填充數(shù)據(jù)集DataAdapter的主要方法是Fill,用來將來自DataAdapter中的數(shù)據(jù)填入Da
12、taSet中一旦將要使用的數(shù)據(jù)放到了DataSet中,就可以和數(shù)據(jù)庫斷開連接,以后對數(shù)據(jù)的操作,將在DataSet上進(jìn)行2916.4 修改和更新數(shù)據(jù)庫16.4.1 利用Visual Studio產(chǎn)生代碼16.4.2 使用DataGrid顯示數(shù)據(jù)16.4.3 數(shù)據(jù)的修改與更新30DataSet中的數(shù)據(jù)是在本地的,對數(shù)據(jù)的修改、插入或刪除等操作將首先在DataSet中完成隨后,在必要的時候,再一次性地向數(shù)據(jù)庫更新所有的數(shù)據(jù)3116.4.1 利用Visual Studio產(chǎn)生代碼對數(shù)據(jù)庫的操作最簡單的方式可能應(yīng)該是將一個數(shù)據(jù)表直接由Visual Studio的服務(wù)器資源管理器拖動到Windows窗體
13、上此時,Visual Studio將在幕后自動產(chǎn)生相應(yīng)的代碼查看VB生成的代碼,除了正確地設(shè)置了連接外,主要自動生成了DataAdapter的 mand、 mand、 mand和 mand屬性的值3216.4.2 使用DataGrid顯示數(shù)據(jù)有時需要將整個一張表同時顯示出來,DataGrid控件可以完成這個功能,只需將DataGrid控件和一個DataSet綁定即可也就是說當(dāng)DataSet改變時,DataGrid會反映這種變化,同時,在DataGrid中做的修改也會反映給DataSet要將DataGrid和DataSet綁定,只需正確設(shè)置DataGrid的DataSource屬性和DataMe
14、mber屬性3316.4.3 數(shù)據(jù)的修改與更新在DataGrid可以直接對數(shù)據(jù)進(jìn)行操作可以調(diào)用DataAdapter的Update方法更新數(shù)據(jù)庫3416.5 綜合示例:DataGrid(補(bǔ)充)通過DataGrid控件訪問、修改“通信錄.mdb”參見:Windows 窗體中的簡單數(shù)據(jù)訪問35實(shí)現(xiàn)步驟1. 創(chuàng)建數(shù)據(jù)連接和數(shù)據(jù)適配器2. 生成數(shù)據(jù)集3. 添加并綁定DataGrid控件4. 填充數(shù)據(jù)集(按鈕btnLoad)5. 更新數(shù)據(jù)庫(按鈕btnUpdate)361. 創(chuàng)建數(shù)據(jù)連接和數(shù)據(jù)適配器工具箱數(shù)據(jù)添加OleDbDataAdapter,“數(shù)據(jù)適配器配置向?qū)А睂⒆詣訂舆x擇“Microsoft
15、Jet 4.0 OLE DB Provider”作為提供程序,選擇指向“通信錄.mdb”數(shù)據(jù)庫的連接,從而建立連接指定“使用 SQL 語句”來訪問數(shù)據(jù)庫通過“查詢生成器”生成SQL語句最終獲得數(shù)據(jù)連接OleDbConnectionMyDB和數(shù)據(jù)適配器OleDbDataAdapterMyDB372. 生成數(shù)據(jù)集鼠標(biāo)右擊OleDbDataAdapter,選擇“生成數(shù)據(jù)集”,獲得數(shù)據(jù)集DataSetMyDB383. 添加并綁定DataGrid控件工具箱添加DataGridDataGrid的DataSource屬性設(shè)為“DataSetMyDB”,DataMember屬性設(shè)為“通信錄表”394. 填充數(shù)據(jù)集(按鈕btnLoad)OleDbDataAdapterMyDB.Fill(DataSetMyDB)405. 更新數(shù)據(jù)庫(按鈕btnUpdate)OleDbDataAdapterMyDB.Update(DataSetMyDB)41事件處理代碼Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click DataSetMyD
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2012年高考語文試卷(安徽)(空白卷)
- 《離子濃度大小比較》課件
- 挑戰(zhàn)與突破自我
- 探索物理定律的奧秘
- 《痛苦的職場人》課件
- 工作調(diào)研報(bào)告(合集三篇)
- 2023年項(xiàng)目部安全管理人員安全培訓(xùn)考試題附參考答案(達(dá)標(biāo)題)
- 2023年項(xiàng)目部安全管理人員安全培訓(xùn)考試題(1套)
- 母親節(jié)新媒體策劃
- 初中語文教師教學(xué)工作總結(jié)11篇
- CNAS-CL02-A001:2023 醫(yī)學(xué)實(shí)驗(yàn)室質(zhì)量和能力認(rèn)可準(zhǔn)則的應(yīng)用要求
- ??低晿寵C(jī)攝像機(jī)檢測報(bào)告.文檔
- 部編小語一下三單元(《小公雞和小鴨子》《樹和喜鵲》《怎么都快樂》)大單元學(xué)習(xí)任務(wù)群教學(xué)設(shè)計(jì)
- 體檢中心組織架構(gòu)
- 森林撫育投標(biāo)方案
- 中小學(xué)教育中課程資源的開發(fā)與利用
- 大班科學(xué)教案:我和風(fēng)兒做游戲教案及反思
- 園藝治療概念、內(nèi)涵與理論依據(jù)
- 后續(xù)服務(wù)承諾及保證措施-后續(xù)服務(wù)
- 提高無創(chuàng)呼吸機(jī)患者的依從性
- 小兒急性顱內(nèi)壓增高的護(hù)理課件
評論
0/150
提交評論