VisualBasicNET數(shù)據(jù)庫技術(shù)ppt課件_第1頁
VisualBasicNET數(shù)據(jù)庫技術(shù)ppt課件_第2頁
VisualBasicNET數(shù)據(jù)庫技術(shù)ppt課件_第3頁
VisualBasicNET數(shù)據(jù)庫技術(shù)ppt課件_第4頁
VisualBasicNET數(shù)據(jù)庫技術(shù)ppt課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、6.1 ADO.NET概述概述 6.2 銜接數(shù)據(jù)源銜接數(shù)據(jù)源6.3 運(yùn)用運(yùn)用DataReader檢索數(shù)據(jù)檢索數(shù)據(jù)6.4 運(yùn)用存儲(chǔ)過程運(yùn)用存儲(chǔ)過程 6.5 運(yùn)用運(yùn)用DataSet和和DataAdapter檢檢索數(shù)據(jù)索數(shù)據(jù) 6.6 運(yùn)用運(yùn)用DataGrid控件控件 主要內(nèi)容主要內(nèi)容 數(shù)據(jù)庫概念數(shù)據(jù)庫概念 雖然文件系統(tǒng)可以處理不少問題,但是數(shù)據(jù)雖然文件系統(tǒng)可以處理不少問題,但是數(shù)據(jù)的冗余和不一致、完好性、并發(fā)訪問等問題的冗余和不一致、完好性、并發(fā)訪問等問題文件系統(tǒng)是無法處理的。文件系統(tǒng)是無法處理的。 數(shù)據(jù)庫定義:數(shù)據(jù)庫是存儲(chǔ)在一同的相關(guān)數(shù)數(shù)據(jù)庫定義:數(shù)據(jù)庫是存儲(chǔ)在一同的相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)是構(gòu)造

2、化的,無有害的據(jù)的集合,這些數(shù)據(jù)是構(gòu)造化的,無有害的或不用要的冗余,并為多種運(yùn)用效力;數(shù)據(jù)或不用要的冗余,并為多種運(yùn)用效力;數(shù)據(jù)的存儲(chǔ)獨(dú)立于運(yùn)用它的程序;對數(shù)據(jù)庫插的存儲(chǔ)獨(dú)立于運(yùn)用它的程序;對數(shù)據(jù)庫插 入新數(shù)據(jù),修正和檢索原有數(shù)據(jù)均能按一種入新數(shù)據(jù),修正和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進(jìn)展。當(dāng)某個(gè)系統(tǒng)中公用的和可控制的方式進(jìn)展。當(dāng)某個(gè)系統(tǒng)中存在構(gòu)造上完全分開的假設(shè)干個(gè)數(shù)據(jù)庫時(shí),存在構(gòu)造上完全分開的假設(shè)干個(gè)數(shù)據(jù)庫時(shí),那么該系統(tǒng)包含一個(gè)那么該系統(tǒng)包含一個(gè)數(shù)據(jù)庫集合數(shù)據(jù)庫集合。 6.1 ADO.NET概述概述 ADO.NET來源來源 ADO .NET由由Microsoft ActiveX

3、 Data Objects (ADO)改良而來,它提供平改良而來,它提供平臺(tái)互用和可收縮的數(shù)據(jù)訪問功能,是臺(tái)互用和可收縮的數(shù)據(jù)訪問功能,是Visual Basic.NET進(jìn)展數(shù)據(jù)庫編程所進(jìn)展數(shù)據(jù)庫編程所運(yùn)用的重要工具。運(yùn)用的重要工具。 ADO.NET 運(yùn)用了某些運(yùn)用了某些 ADO 的對象,的對象,如如 Connection 和和 Command 對象,對象,并且還引入了新的對象。并且還引入了新的對象。 主要的新主要的新 ADO.NET 對象包括對象包括 DataSet、DataReader 和和 DataAdapter。 6.1 ADO.NET概述概述 ADO.NET也稱做也稱做.NET的的A

4、ctiveX數(shù)據(jù)對象,數(shù)據(jù)對象,擔(dān)任經(jīng)過擔(dān)任經(jīng)過ODBC或者其它專業(yè)的信道銜接到或者其它專業(yè)的信道銜接到外部數(shù)據(jù)源。外部數(shù)據(jù)源。 訪問數(shù)據(jù)庫中的數(shù)據(jù)分為訪問數(shù)據(jù)庫中的數(shù)據(jù)分為3層處置模型:層處置模型: 建立到數(shù)據(jù)源的銜接。建立到數(shù)據(jù)源的銜接。 經(jīng)過銜接執(zhí)行經(jīng)過銜接執(zhí)行SQL命令命令 在數(shù)據(jù)可用的時(shí)候處置在數(shù)據(jù)可用的時(shí)候處置SQL命令前往的數(shù)據(jù)。命令前往的數(shù)據(jù)。6.1 ADO.NET概述概述 .NET數(shù)據(jù)提供者:數(shù)據(jù)提供者: .NET知道其任務(wù)方式的數(shù)據(jù)源。這知道其任務(wù)方式的數(shù)據(jù)源。這些數(shù)據(jù)經(jīng)過些數(shù)據(jù)經(jīng)過OLE和和.NET相互協(xié)作。相互協(xié)作。 .NET數(shù)據(jù)提供者的名字就是所運(yùn)用數(shù)據(jù)提供者的名字就

5、是所運(yùn)用的數(shù)據(jù)庫的名字:的數(shù)據(jù)庫的名字:SQL Server,Oracle,Access等。等。6.1 ADO.NET概述概述 6.1 ADO.NET概述概述 ADO.NET數(shù)據(jù)提供者提供者提供者提供者在提供者在.NET中的中的名稱名稱命名空間命名空間SQL ServerSQLOLEDESystem.Data.SqlClientOracleMSDAORASystem.Data.OleDbAccess2000和和Access2002Microsoft.Jet.OLEDE.4.0System.Data.OleDbAccess97Microsoft.Jet.OLEDE.3.5System.Data.

6、OleDb6.1 ADO.NET概述概述 ADO.NET數(shù)據(jù)對象類類System.Data.OleDb中的類名中的類名SytemData.SqlClient中的名稱中的名稱ConnectionOleDbConnectionSqlConnectionDataAdapterOleDbDataReaderSqlDataReaderCommandOleDbCommandSqlCommandDataReaderOleDbDataReaderSqlDataReaderSystemData中的中的DataSetDataSetDataSet6.1 ADO.NET概述概述 銜接數(shù)據(jù)源的步驟:銜接數(shù)據(jù)源的步驟:

7、經(jīng)過創(chuàng)建一個(gè)新文本文件來創(chuàng)建一個(gè)空的經(jīng)過創(chuàng)建一個(gè)新文本文件來創(chuàng)建一個(gè)空的Mircosoft Data Link文件,然后把這個(gè)文件文件,然后把這個(gè)文件的擴(kuò)展名改成的擴(kuò)展名改成udl。 雙擊這個(gè)新文件,在彈出的對話框中可以創(chuàng)雙擊這個(gè)新文件,在彈出的對話框中可以創(chuàng)建和編輯數(shù)據(jù)庫的銜接信息。建和編輯數(shù)據(jù)庫的銜接信息。 選取數(shù)據(jù)提供者:選取數(shù)據(jù)提供者: 假設(shè)是假設(shè)是Access數(shù)據(jù)庫,選擇數(shù)據(jù)庫,選擇Microsoft Jet4.0 provider。 假設(shè)是假設(shè)是SQL Sever或者或者M(jìn)SDE數(shù)據(jù)庫,選擇數(shù)據(jù)庫,選擇Microsoft OLEDB Provider for SQL Server。

8、6.2 銜接數(shù)據(jù)源銜接數(shù)據(jù)源 4.設(shè)置銜接屬性。設(shè)置銜接屬性。5.進(jìn)展銜接測試。進(jìn)展銜接測試。6.建立一個(gè)銜接的時(shí)候,需求建立一個(gè)建立一個(gè)銜接的時(shí)候,需求建立一個(gè)SystemData.OleDB.OLEDBConnection實(shí)實(shí)例例 或者或者System.Data.SqlClient.SQLConnection對對象。象。7.調(diào)用調(diào)用OLEDBConnection的的Open方法建立和方法建立和數(shù)據(jù)庫的銜接。數(shù)據(jù)庫的銜接。6.2 銜接數(shù)據(jù)源銜接數(shù)據(jù)源 運(yùn)用運(yùn)用SQL Server .NET Data ProviderDim sqlConnection1 As SqlClient.SqlCon

9、nection Dim strConnect As String = data source=效力器名效力器名; _ initialcatalog = 數(shù)據(jù)庫名數(shù)據(jù)庫名; user id=sa; password=; sqlConnection1=New System.Data. _ SqlClient .SqlConnection(strConnect) sqlConnection1.open() SQL Server .NET Data Provider是利用是利用SqlConnection類來銜接類來銜接SQL Server7.0或更高版本的數(shù)據(jù)庫,或更高版本的數(shù)據(jù)庫,SqlConne_

10、ction類位于稱號空間類位于稱號空間System.Data.SqlClient下。下。 6.2 銜接數(shù)據(jù)源銜接數(shù)據(jù)源 The OLE DB .NET Data Provider是經(jīng)過位于稱號空間是經(jīng)過位于稱號空間System.Data.OleDb類庫下的類庫下的OleDbConnection類來銜接類來銜接Access、Oracle和和SQL Server等種類數(shù)據(jù)庫。等種類數(shù)據(jù)庫。 運(yùn)用運(yùn)用The OLE DB .NET Data ProviderDim oleDbConnection1 As OleDb.OleDbConnection Dim strConnect As Sting=“P

11、rovider=Microsoft.Jet.OLEDB. 4.0; _ Data Source=d:Data Example.mdb oleDbConnection1= New System.Data.OleDb._ OleDbConnection(strConnect)6.2 銜接數(shù)據(jù)源銜接數(shù)據(jù)源 銜接銜接Access數(shù)據(jù)庫:假設(shè)要銜接的數(shù)據(jù)庫:假設(shè)要銜接的Access數(shù)據(jù)庫名為數(shù)據(jù)庫名為“Example.mdb,存放在,存放在d:Data目錄下。目錄下。 銜接銜接SQL Server數(shù)據(jù)庫數(shù)據(jù)庫運(yùn)用運(yùn)用OLE DB .NET Data Provider6.2 銜接數(shù)據(jù)源銜接數(shù)據(jù)源 Dim

12、strConnect As Sting=Provider=SQLOLEDB; _ Persist Security Info= False; Data Source=效力器名效力器名; _ Initial Catalog=數(shù)據(jù)庫名數(shù)據(jù)庫名; User ID=用戶名用戶名; Password=密碼密碼; 銜接銜接ORACLE數(shù)據(jù)庫數(shù)據(jù)庫Dim strConnect As Sting=Provider=MSDAORA; _ Data Source=效力器名效力器名; User ID=用戶名用戶名; Password=密碼密碼; DataReader是一個(gè)用來存儲(chǔ)表的對象,它是一個(gè)用來存儲(chǔ)表的對象,

13、它允許運(yùn)用其允許運(yùn)用其Read方法來順序讀取數(shù)據(jù)。方法來順序讀取數(shù)據(jù)。 在該對象中,數(shù)據(jù)是只讀的,并只可以向前在該對象中,數(shù)據(jù)是只讀的,并只可以向前讀取。讀取。 Read方法可以使光標(biāo)視圖中的指針向下一方法可以使光標(biāo)視圖中的指針向下一行挪動(dòng),確保行中各列的數(shù)據(jù)可以被一組行挪動(dòng),確保行中各列的數(shù)據(jù)可以被一組Get方法獲取。方法獲取。6.3 運(yùn)用運(yùn)用DataReader檢索數(shù)據(jù)檢索數(shù)據(jù) 用用DataReader對象管理對象管理Select查詢查詢OleDbConnection數(shù)據(jù)庫數(shù)據(jù)庫OleDbConnection包包含單個(gè)含單個(gè)Select語句語句Data ReaderSQL語句得結(jié)果,方式和

14、語句得結(jié)果,方式和數(shù)據(jù)被放在數(shù)據(jù)被放在DataReader中中6.3 運(yùn)用運(yùn)用DataReader檢索數(shù)據(jù)檢索數(shù)據(jù) Dim oleDbConnection1 As OleDb.OleDbConnection Dim strConnect As Sting=Provider=Microsoft.Jet.OLEDB. 4.0; _ Data Source=d:Data Example.mdb oleDbConnection1= New System.Data.OleDb. _ OleDbConnection(strConnect) Dim SQLstr As String= “SELECT * F

15、ROM BooksDim command As OleDbCommandDim reader As OleDbDataReadercommand=New OleDbCommand(SQLstr, oleDbConnection1)command.open()reader=command.ExecuteReader()reader.Read()TextBox1.Text=reader.GetXXX(n)reader.Close()oleDbConnection1.Close()6.3 運(yùn)用運(yùn)用DataReader檢索數(shù)據(jù)檢索數(shù)據(jù) 思索題:如何提高對數(shù)據(jù)庫的訪問思索題:如何提高對數(shù)據(jù)庫的訪問效率?

16、效率? 運(yùn)用存儲(chǔ)過程運(yùn)用存儲(chǔ)過程 運(yùn)用運(yùn)用DataAdapter機(jī)制機(jī)制6.3 運(yùn)用運(yùn)用DataReader檢索數(shù)據(jù)檢索數(shù)據(jù) 創(chuàng)建一個(gè)過程,把它存儲(chǔ)在數(shù)據(jù)庫中,創(chuàng)建一個(gè)過程,把它存儲(chǔ)在數(shù)據(jù)庫中,由于事先知道有這個(gè)過程,所以可以提由于事先知道有這個(gè)過程,所以可以提早編譯它,以便在運(yùn)用程序中運(yùn)用。早編譯它,以便在運(yùn)用程序中運(yùn)用。 運(yùn)用存儲(chǔ)過程的緣由:運(yùn)用存儲(chǔ)過程的緣由: 提高性能提高性能 減少網(wǎng)絡(luò)流量減少網(wǎng)絡(luò)流量 平安性平安性6.4 運(yùn)用存儲(chǔ)過程運(yùn)用存儲(chǔ)過程 創(chuàng)建存儲(chǔ)過程創(chuàng)建存儲(chǔ)過程 可以運(yùn)用可以運(yùn)用Visual Studio.NET中的工具或中的工具或SQLSever的的Enterprise M

17、anager中的中的工具。工具。 從技術(shù)上看可以運(yùn)用第三方工具或編程從技術(shù)上看可以運(yùn)用第三方工具或編程實(shí)現(xiàn)。實(shí)現(xiàn)。 存儲(chǔ)過程可以是一個(gè)存儲(chǔ)過程可以是一個(gè)SQL語句,也可以語句,也可以是一組復(fù)雜的語句。是一組復(fù)雜的語句。 T-SQL支持分支、循環(huán)和其它變量聲明,支持分支、循環(huán)和其它變量聲明,這將有助于編寫出某些非常復(fù)雜的存儲(chǔ)這將有助于編寫出某些非常復(fù)雜的存儲(chǔ)過程代碼。過程代碼。6.4 運(yùn)用存儲(chǔ)過程運(yùn)用存儲(chǔ)過程 調(diào)用存儲(chǔ)過程調(diào)用存儲(chǔ)過程 創(chuàng)建一個(gè)創(chuàng)建一個(gè)SqlCommand對象。對象。 設(shè)置設(shè)置CommandType屬性。屬性。 添加與存儲(chǔ)過程本身匹配的參數(shù)。添加與存儲(chǔ)過程本身匹配的參數(shù)。 創(chuàng)建一

18、個(gè)創(chuàng)建一個(gè)SqlDataAdapter,填充某種結(jié),填充某種結(jié)果對象。果對象。6.4 運(yùn)用存儲(chǔ)過程運(yùn)用存儲(chǔ)過程建立脫機(jī)的數(shù)據(jù)庫訪問方式建立脫機(jī)的數(shù)據(jù)庫訪問方式 用用SqlConnection對象建立銜接,并翻開數(shù)據(jù)庫。對象建立銜接,并翻開數(shù)據(jù)庫。 向數(shù)據(jù)庫索取所要的數(shù)據(jù),并放到向數(shù)據(jù)庫索取所要的數(shù)據(jù),并放到SqlDataAdapter對對象中。象中。 把把SqlDataAdapter對象中的數(shù)據(jù)填入對象中的數(shù)據(jù)填入DataSet對象。對象。 封鎖封鎖SqlConnection對象。對象。 在在DataSet對象中操作數(shù)據(jù)。對象中操作數(shù)據(jù)。 操作終了,再次翻開操作終了,再次翻開SqlConnec

19、tion對象和數(shù)據(jù)庫的對象和數(shù)據(jù)庫的銜接。銜接。 利用利用SqlDataAdapter對象對數(shù)據(jù)庫進(jìn)展更新。對象對數(shù)據(jù)庫進(jìn)展更新。 封鎖封鎖SqlConnection對象。對象。6.5 運(yùn)用運(yùn)用DataSet和和DataAdapter檢索數(shù)據(jù)檢索數(shù)據(jù) DataSet類的層次構(gòu)造類的層次構(gòu)造6.5 運(yùn)用運(yùn)用DataSet和和DataAdapter檢索數(shù)據(jù)檢索數(shù)據(jù)System.ObjectSystem.Data.DataSetSytemponentModel. MarshalValueComponent DataSet對象重要的公有屬性屬性屬性說明說明DataSetName獲取或設(shè)置數(shù)據(jù)集的名稱獲

20、取或設(shè)置數(shù)據(jù)集的名稱EnforceConstraints獲取或設(shè)置是否遵循約束規(guī)則獲取或設(shè)置是否遵循約束規(guī)則HasErrors指出在所有表的所有行內(nèi)是否有錯(cuò)誤指出在所有表的所有行內(nèi)是否有錯(cuò)誤Relations獲取鏈接表的關(guān)系對象獲取鏈接表的關(guān)系對象Tables獲取數(shù)據(jù)集中的表獲取數(shù)據(jù)集中的表6.5 運(yùn)用運(yùn)用DataSet和和DataAdapter檢索數(shù)據(jù)檢索數(shù)據(jù)方法方法說明說明AcceptChanges接受(提交)對數(shù)據(jù)集所做的修改接受(提交)對數(shù)據(jù)集所做的修改Clear通過刪除所有表內(nèi)的所有行來清空數(shù)據(jù)集通過刪除所有表內(nèi)的所有行來清空數(shù)據(jù)集Copy復(fù)制數(shù)據(jù)集復(fù)制數(shù)據(jù)集GetChanges返回

21、保護(hù)對象當(dāng)前數(shù)據(jù)集所做所有修改的數(shù)據(jù)集返回保護(hù)對象當(dāng)前數(shù)據(jù)集所做所有修改的數(shù)據(jù)集GetXml獲取用獲取用XML表示的數(shù)據(jù)集中的數(shù)據(jù)表示的數(shù)據(jù)集中的數(shù)據(jù)GetXmlSchema獲取數(shù)據(jù)集的獲取數(shù)據(jù)集的XSD架構(gòu)架構(gòu)HasChanges指出數(shù)據(jù)集是否據(jù)偶仍然未被提交的修改指出數(shù)據(jù)集是否據(jù)偶仍然未被提交的修改Merge把該數(shù)據(jù)集與另一個(gè)數(shù)據(jù)集合并把該數(shù)據(jù)集與另一個(gè)數(shù)據(jù)集合并ReadXml把數(shù)據(jù)從把數(shù)據(jù)從XML讀入數(shù)據(jù)集讀入數(shù)據(jù)集ReadXmlScema把把XML架構(gòu)讀入數(shù)據(jù)集架構(gòu)讀入數(shù)據(jù)集RejectChanges回滾自數(shù)據(jù)集創(chuàng)建以來或自最后一次調(diào)用回滾自數(shù)據(jù)集創(chuàng)建以來或自最后一次調(diào)用AcceptC

22、hanges以來對數(shù)據(jù)集所做的修改以來對數(shù)據(jù)集所做的修改Reset把數(shù)據(jù)集重新設(shè)置到其原來狀態(tài)把數(shù)據(jù)集重新設(shè)置到其原來狀態(tài)WriteXml把數(shù)據(jù)集架構(gòu)和數(shù)據(jù)寫入把數(shù)據(jù)集架構(gòu)和數(shù)據(jù)寫入XMLWriteXmlShcema把數(shù)據(jù)架構(gòu)寫入把數(shù)據(jù)架構(gòu)寫入XMLDataAdapter對象重要的公有方法 每個(gè)每個(gè)DataSet對象都由對象都由DataTable對象對象集合組成集合組成 DataSet對象可以訪問多個(gè)數(shù)據(jù)表,隱對象可以訪問多個(gè)數(shù)據(jù)表,隱藏、顯示表藏、顯示表 可以用可以用DataRelation對象把他們相互銜對象把他們相互銜接起來。接起來。6.5 運(yùn)用運(yùn)用DataSet和和DataAdapte

23、r檢索數(shù)據(jù)檢索數(shù)據(jù) DataAdapter類是數(shù)據(jù)適配器的根底類,類是數(shù)據(jù)適配器的根底類,在數(shù)據(jù)提供程序中它是數(shù)據(jù)集和數(shù)據(jù)庫在數(shù)據(jù)提供程序中它是數(shù)據(jù)集和數(shù)據(jù)庫之間的橋梁。之間的橋梁。 DataAdapter類的層次構(gòu)造是:類的層次構(gòu)造是:6.5 運(yùn)用運(yùn)用DataSet和和DataAdapter檢索數(shù)據(jù)檢索數(shù)據(jù)System.Datamon.DataAdapterSystem.ObjectSytemponentModelponent System.MarshalByRefObject DataAdapter對象重要的公有屬性屬性屬性說明說明AcceptChangesDuringFill獲取或設(shè)置數(shù)據(jù)行添加到獲取或設(shè)置數(shù)據(jù)行添加到表之后是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論