《Visual Basic .NET軟件開發(fā)技術(shù)》課件第6章 ADO.NET_第1頁
《Visual Basic .NET軟件開發(fā)技術(shù)》課件第6章 ADO.NET_第2頁
《Visual Basic .NET軟件開發(fā)技術(shù)》課件第6章 ADO.NET_第3頁
《Visual Basic .NET軟件開發(fā)技術(shù)》課件第6章 ADO.NET_第4頁
《Visual Basic .NET軟件開發(fā)技術(shù)》課件第6章 ADO.NET_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二單元ADO.NET的特征ADO.NET是Microsoft公司定義的專門用于對(duì)數(shù)據(jù)庫進(jìn)行訪問的模型,.NET應(yīng)用程序使用它可以方便地實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的添加、刪除、修改和查詢(也稱為檢索)。ADO.NET對(duì)象模型從整體上,ADO.NET的結(jié)構(gòu)如下圖所示:

針對(duì)目前的數(shù)據(jù)庫的種類,.NETFramework數(shù)據(jù)提供器支持兩種類型的數(shù)據(jù)提供器:OLEDB數(shù)據(jù)提供器這種類型的數(shù)據(jù)提供器可以使用所有的OLEDB數(shù)據(jù)提供器,包括:SQLOLEDB提供器、OracleOLEDB提供器及JETOLEDB提供器;SQLServer數(shù)據(jù)提供器這個(gè)類型的數(shù)據(jù)提供器只能與MicrosoftSQLServer一起使用,若應(yīng)用程序連接的后臺(tái)數(shù)據(jù)庫為SQLServer數(shù)據(jù)庫,建議使用SQLServer數(shù)據(jù)提供器,這樣可以充分發(fā)揮SQLServer數(shù)據(jù)庫服務(wù)器的效能。第三單元使用ADO.NET模型連接數(shù)據(jù)庫Connection連接組件應(yīng)用程序使用Connection連接組件建立與一個(gè)數(shù)據(jù)源的連接。根據(jù)所連接的數(shù)據(jù)源的類型不同,有兩種不同的連接對(duì)象,它們分別是OleDBConnection和SqlConnection,這兩個(gè)對(duì)象分別用來連接OLEDB數(shù)據(jù)數(shù)據(jù)源和SQLServer數(shù)據(jù)源。Connection對(duì)象的常用屬性和方法:連接字符串,指定用于連接數(shù)據(jù)源的各種信息:Provider=SQLOLEDB;指明了要連接的數(shù)據(jù)源類型;UserID=guest;指明了連接數(shù)據(jù)庫所需要的用戶名;;Password=guest;指明連接數(shù)據(jù)庫的用戶密碼;InitialCatalog=MySchool;指明所連接的數(shù)據(jù)庫的名稱;dataSource=localhost指明數(shù)據(jù)庫所在的計(jì)算機(jī)的地址,此處表示數(shù)據(jù)庫與客戶程序運(yùn)行在同一臺(tái)計(jì)算機(jī)上;舉例:DimconnAsNewOleDb.OleDbConnection("Provider=UserID=guest;Password=guest;InitialCatalog=MySchool;dataSource=VIC")conn.Open()conn.Close()聯(lián)機(jī)模式的數(shù)據(jù)存取在聯(lián)機(jī)模式的存取模式下,應(yīng)用程序會(huì)持續(xù)連接到數(shù)據(jù)庫上。適用于數(shù)據(jù)要時(shí)時(shí)更新的開發(fā)環(huán)境上,并且數(shù)據(jù)是只讀。聯(lián)機(jī)模式下數(shù)據(jù)庫存取的步驟一、首先創(chuàng)建一個(gè)Connection對(duì)象建立與數(shù)據(jù)源的連接;二、然后,創(chuàng)建一個(gè)Command對(duì)象來引用一個(gè)SQL語句或一個(gè)存儲(chǔ)過程;三、執(zhí)行SQL或存儲(chǔ)過程,返回結(jié)果集或受影響的記錄的行數(shù);四、關(guān)閉連接。Command數(shù)據(jù)命令組件為了操作數(shù)據(jù)庫中的數(shù)據(jù),必須使用數(shù)據(jù)命令組件,所謂數(shù)據(jù)命令就是一個(gè)SQL語句、或用來檢索、插入、刪除及修改數(shù)據(jù)庫中的數(shù)據(jù)的存儲(chǔ)過程;根據(jù)所操作的數(shù)據(jù)源類型不同,數(shù)據(jù)命令也有兩種類型:OleDbCommand和SqlCommand,它們分別用來操作OLEDB數(shù)據(jù)源和SQLServer數(shù)據(jù)源。

數(shù)據(jù)命令Command的常用屬性和方法:DataReader數(shù)據(jù)讀取器組件數(shù)據(jù)讀取器DataReader用來以只讀或只向前模式來從數(shù)據(jù)庫中檢索數(shù)據(jù);使用數(shù)據(jù)讀取器可以快速地訪問數(shù)據(jù)并使用較少的內(nèi)存,下表給出了數(shù)據(jù)讀取器的常用屬性和方法:

舉例一:DimconnAsNewOleDb.OleDbConnection("Provider=UserID=guest;Password=guest;InitialCatalog=MySchool;dataSource=VIC")conn.Open()DimcommAsNewOleDb.OleDbCommand("select*fromDepartments",conn)

DimdrAsOleDb.OleDbDataReaderdr=comm.ExecuteReader()DoWhiledr.ReadMessageBox.Show("系編號(hào)是:"&dr.Item("系編號(hào)")&"——系名稱是:"&dr.Item("系名稱"))Loop

dr.Close()conn.Close()舉例二:DimcommAsNewOleDb.OleDbCommand("selectcount(*)fromDepartments",conn)DimintCountAsInteger=0intCount=comm.ExecuteScalarMessageBox.Show("現(xiàn)有系數(shù)為:"&intCount)舉例三:DimcommAsNewOleDb.OleDbCommand("updateDepartmentssET系名稱='計(jì)算機(jī)系'where系編號(hào)='0001'",conn)DimintCountAsInteger=0intCount=comm.ExecuteNonQueryMessageBox.Show("更新已完成,更新的記錄數(shù)為:"&intCount)脫機(jī)模式的數(shù)據(jù)存取脫機(jī)模式的數(shù)據(jù)存取是指應(yīng)用程序并不一直保持到數(shù)據(jù)源的連接。舉例:DimconnAsNewOleDb.OleDbConnection("Provider=SQLOLEDB;UserID=guest;Password=guest;InitialCatalog=MySchool;dataSource=VIC")conn.Open()DimcommAsNewOleDb.OleDbCommand("select*fromDepartments",conn)DimdaAsNewOleDb.OleDbDataAdapter(comm)DimdsAsNewDataSETds.Clear()da.Fill(ds,"Departments")DimdtAsNewDataTabledt=ds.Tables("Departments")ForiAsInteger=0Todt.Rows.Count-1MessageBox.Show("系編號(hào)是:"&dt.Rows(i)("系編號(hào)")&"——系名稱是:"&dt.Rows(i)("系名稱"))Nextconn.Close()DataAdapter數(shù)據(jù)適配器DataAdapter功能是根據(jù)一定的條件從數(shù)據(jù)庫中檢索數(shù)據(jù)并將檢索得到的結(jié)果存放到一個(gè)數(shù)據(jù)集中,或當(dāng)應(yīng)用程序改變了數(shù)據(jù)集中的數(shù)據(jù)時(shí),數(shù)據(jù)適配器將改變的結(jié)果回寫到數(shù)據(jù)庫中。與Connection組件類似,根據(jù)數(shù)據(jù)源的類型不同,有兩種類型的數(shù)據(jù)適配器:OleDBDataAdapter與SqlDataAdapter,它們分別用來訪問OLEDB數(shù)據(jù)源和SQLServer數(shù)據(jù)源。DataAdapter有如下表所示的幾種構(gòu)造函數(shù):DataAdapter的常用屬性和方法:DataSET數(shù)據(jù)集DataSET是一個(gè)從數(shù)據(jù)庫中檢索的無連接的、緩存的數(shù)據(jù)庫記錄的集合;可以說DataSET對(duì)象是一個(gè)存儲(chǔ)在客戶端內(nèi)存中的數(shù)據(jù)庫;DataSET有如下表所示的構(gòu)造函數(shù):一旦創(chuàng)建了DataAdapter對(duì)象和DataSET對(duì)象以后,接下來,就調(diào)用DataAdapter的Fill方法從數(shù)據(jù)庫中獲得數(shù)據(jù)并用獲得的結(jié)果填充到數(shù)據(jù)集中;DataAdapter對(duì)象的Fill方法的常用形式如下表:DataTableDataTable是DataSET中的表格,DataTable中每一條記錄是一個(gè)DataRow對(duì)象,DataTable中每一個(gè)字段是一個(gè)DataColumn對(duì)象;舉例:DimconnAsNewOleDb.OleDbConnection("Provider=SQLOLEDB;UserID=guest;Password=guest;InitialCatalog=MySchool;dataSource=VIC")conn.Open()DimcommAsNewOleDb.OleDbCommand("select*fromDepartments",conn)DimdaAsNewOleDb.OleDbDataAdapter(comm)DimdsAsNewDataSETds.Clear()da.Fill(ds,"Departments")DimdtAsNewDataTabledt=ds.Tables("Departments")ForiAsInteger=0Todt.Rows.Count-1MessageBox.Show("系編號(hào)是:"&dt.Rows(i)("系編號(hào)")&"——系名稱是:"&dt.Rows(i)("系名稱"))Nextconn.Close()DataGrid控件,數(shù)據(jù)綁定及顯示DataSET中的數(shù)據(jù)所謂“數(shù)據(jù)綁定”就是將把從數(shù)據(jù)庫檢索得到的數(shù)據(jù)與一個(gè)控件聯(lián)系起來,從而可以將數(shù)據(jù)顯示在控件上,DataGrid控件是顯示有多行結(jié)果的最佳控件;dg.DataSource=ds指定要綁定到DataGrid控件的數(shù)據(jù)源??梢越壎ǖ紻ataGrid控件的數(shù)據(jù)源可以是:DataTable對(duì)象DataView對(duì)象DataSET對(duì)象dgProvider.DataMember="Provider"根據(jù)在DataGrid的DataSource屬性中設(shè)置的值的類型不同,在DataGrid的DataMember屬性中可能還要設(shè)置相應(yīng)的值,對(duì)于在DataSource中設(shè)置為DataTable和DataView而言,在DataMember屬性中不用再設(shè)置值,而對(duì)于在DataSource中設(shè)置的是一個(gè)DataSET對(duì)象,則必須在DataMember中指定欲在DataGrid中顯示的表的表名。舉例DimcommAsNewOleDb.OleDbCommand("select*fromDepartments",conn)DimdaAsNewOleDb.OleDbDataAdapter(comm)DimdsAsNewDataSETds.Clear()da.Fill(ds,"Departments")

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論