Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 10 章 ADO.NET與XML.

Similar presentations


Presentation on theme: "第 10 章 ADO.NET與XML."— Presentation transcript:

1 第 10 章 ADO.NET與XML

2 簡介ADO.NET - 什麼是ADO.NET ADO的全名為ActiveX Data Objects,是早期Microsoft提供給程式設計師在程式設計時,運用OLE DB的應用程式設計介面(Application Programming Interface)。 那什麼是OLE DB呢?OLE DB技術是由Microsoft所提出的Component Object Model(COM)介面集合,用於提供程式設計師一個一致性的資料存取介面,方便存取儲存於不同資訊來源的資料。

3 簡介ADO.NET - ADO.NET架構

4 簡介ADO.NET - ADO.NET架構 ADO.NET架構中主要提供兩種資料存取方式: .NET Framework資料提供者
DataSet物件

5 .NET Framework資料提供者 - 資料提供者簡介
ADO.NET架構中主要負責資料存取的類別為System.Data,在此類別中主要提供與不同資料來源建立連線的功能,各種資料存取元件,例如:DataSet、DataTable、DataRow及DataColumn等,因此可以利用此這些元件進行資料處理動作。 由於各種不同的資料來源有不同的存取介面,因此在System.Data類別中提供了不同的資料來源命名空間,常見的如下: System.Data.Odbc System.Data.OleDb System.Data.OracleClient System.Data.SqlClient

6 .NET Framework資料提供者 - 資料提供者簡介
連線模式 離線模式

7 .NET Framework資料提供者 - 資料提供者簡介
連線模式 離線模式 連線模式主要經由以下四個元件類型達成 Connection Command DataAdapter DataReader

8 .NET Framework資料提供者 - 建立資料庫連結
在ASP.NET網頁中,操作資料庫的第一步就是要建立網頁與資料庫的連結。ADO.NET物件用於建立與資料庫的連結之物件為Connection物件。 以下語法運用System.Data.OleDb類別示範,將在程式中引入System.Data.OleDb命名空間。 Import Namespace="System.Data.OleDb" 接著,建立一個OleDbConnection物件,並設定某物件變數為該型態的變數。 Dim 物件變數 as OleDbConnection

9 .NET Framework資料提供者 - 建立資料庫連結
有了物件變數後,可以使用New關鍵字產生一個OleDbConnection物件實體,並將物件變數指向該實體,其宣告語法如下: 物件變數 = new OleDbConnection() 以下敘述將建立一個OleDbConnection物件,並由New關鍵字產生實體物件後,由變數指向該實體物件。

10 .NET Framework資料提供者 - 建立資料庫連結
完成OleDbConnection物件的建立後,接著,必須透過ConnectionString屬性設定連線字串,以便在建立資料庫連線時正確的找到資料庫位置,並建立連線。 以下語法以連結到Access資料庫檔案為例,示範如下: "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=資料庫路徑名稱“ 以下語法利用connOleDb物件開啟Web伺服器上的BookDB.mdb,由於該資料庫存在於ASP.NET網頁所在的目錄下,因此,資料庫的路徑與名稱可利用Server物件的MapPath()方法取得。

11 .NET Framework資料提供者 - 建立資料庫連結
Connection物件的關閉與重設 當使用完Connection物件後,您可以呼叫Close()方法,關閉資料庫的連結,語法如下: 資料提供者Connection物件變數.Close() 完成關閉資料庫連結後,.NET共通執行環境將自動回收未使用的記憶體空間。例如:

12 .NET Framework資料提供者 - DataAdapter的觀念與操作
與資料來源建立連線 首先建立一個OleDbDataAdapter物件,並設定某物件變數為該型態的變數。 Dim 物件變數 as OleDbDataAdapter 有了物件變數後,可以使用New關鍵字產生一個OleDbDataAdapter物件實體,並將物件變數指向該實體,其宣告語法如下: 物件變數 = new OleDbConnection()

13 .NET Framework資料提供者 - DataAdapter的觀念與操作
OleDbDataAdapter的初始建構子共有四種參數類型可使用,如下所示:

14 .NET Framework資料提供者 - DataAdapter的觀念與操作
以下敘述將建立一個OleDbConnection物件,並由New關鍵字產生實體物件後,由變數指向該實體物件。同時使用OleDbDataAdapter(String,String)的建構子做為初始化物件方式,其中,第一個String以Select語法取得Book資料表中所有的資料列,第二個String則指定連接到BookDB.mdb的Access資料庫檔案。

15 .NET Framework資料提供者 - DataAdapter的觀念與操作
以下敘述將建立一個OleDbConnection物件,並由New關鍵字產生實體物件後,由變數指向該實體物件。同時使用OleDbDataAdapter(String,String)的建構子做為初始化物件方式,其中,第一個String以Select語法取得Book資料表中所有的資料列,第二個String則指定連接到BookDB.mdb的Access資料庫檔案。

16 .NET Framework資料提供者 - DataAdapter的觀念與操作
取得資料來源中的資料 建立負責資料存取的DataAdapter實體物件後,接下來便是要取得其資料,在此DataAdapter提供了Fill()方法,此方法可以將資料填入到所指定的物件中,例如:DataSet及DataTable中,之後再運用此物件進行資料存取與展示的動作。

17 .NET Framework資料提供者 - DataAdapter的觀念與操作
以下敘述將建立一個DataSet物件,並實作DataSet實體物件: Dim 物件變數 as DataSet = new DataSet() 之後再利用DataAdapter的Fill()方法將資料填入到物件中: DataAdapter.Fill(DataSet物件變數)

18 .NET Framework資料提供者 - DataAdapter的觀念與操作
Fill()方法的定義中,除了會將資料填入到指定的物件變數外,亦會傳回填入的資料筆數,此時可以使用整數變數接收資料筆數值,如下所示:

19 .NET Framework資料提供者 - DataSet的觀念與操作
DataTable 類別 提供資料表格存放時所需的方法與屬性,主要由代表列的DataRow類別與代表行DataColumn類別組成。下圖以一個聯絡資料的資料表格來表示,其中Index、Name、Category、Address及Other代表行名稱,行名稱由DataColumn類別處理,而每一列資料則由DataRow類別處理,示意如下:

20 .NET Framework資料提供者 - DataSet的觀念與操作
DataTable透過Columns屬性指向一個DataColumnCollection類別的實體物件,DataColumnCollection類別儲存DataColumn物件的集合。 DataTable透過Rows屬性則指向DataRowCollection類別實體物件,其儲存DataRow物件的集合。

21 .NET Framework資料提供者 - DataSet的觀念與操作
DataTable常用的屬性如下表所示:

22 .NET Framework資料提供者 - DataSet的觀念與操作
DataTable中與XML有關的方法如下表所示:

23 .NET Framework資料提供者 - DataSet的觀念與操作
DataColumn類別 DataColumn類別將操作單一Column,因為DataColumn是模擬資料表內容,當建立資料表時,資料庫所需設定的欄位資訊,如:欄位名稱、資料型態及預設值等資訊,DataColumn類別亦提供了相對應的屬性,下表為常用屬性:

24 .NET Framework資料提供者 - DataSet的觀念與操作
DataRow類別 DataRow類別主要處理單一資料列,建立單一的DataRow物件時,必須由具有DataColumn的DataTable變數中,透過NewRow()方法產生一筆新的資料列,並指定給DataRow變數,語法如下: Dim DataRow變數 as DataRow = DataTable變數.NetRow()

25 .NET Framework資料提供者 - DataSet的觀念與操作
有了DataRow變數後,再透過Item屬性存取資料列中的每一個資料行,底下以前面介紹過的資料表來說明: 當DataRow變數指向一筆資料列時,透過DataRow的Item屬性存取每一個欄位,例如:Index、Name、Category…等,常見存取語法如下: DataRow(資料列索引值).Item(資料行索引值) DataRow(資料列索引值).Item("資料行名稱") 其中資料列索引值及資料行索引值皆以0做為起始值,因此使用上需特別留意。

26 .NET Framework資料提供者 - DataSet的觀念與操作
DataSet與資料來源繫結 範例10-7將透過OleDbDataAdapter物件連結Access資料庫檔案,並取回資料表- Book內容,首先以程式方式顯示各資料行名稱,最後以繫結到GridView控制項,做為資料展示方式。

27 DataSet物件與XML - DataSet記錄與XML的匯入匯出
由DataSet匯出成XML文件格式 當DataSet物件中擁有資料時,就可以使用WriteXml()方法將資料以XML格式做匯出,常用的WriteXml()方法建構子如下表所示。

28 DataSet物件與XML - DataSet記錄與XML的匯入匯出
以下程式碼使用WriteXml()方法,並帶入XML檔案路徑與預計寫入的檔案名稱: DataSet物件變數.WriteXml( Server.MapPath(".") & "\dsXML.XML") 由於在Web環境中通常不使用絕對路徑做為存取檔案方式,因此這裡透過Server變數的MapPath()方法。方法中的“.”代表當下網站的根目錄,因此Server.MapPath(“.”)便可以取得網站執行時的路徑,如: 此時再加上"\dsXML.XML"的XML檔案名稱便可以組合成完整的檔案路徑:

29 DataSet物件與XML - DataSet記錄與XML的匯入匯出
若您想要讓XML中的Table名稱與原始的資料表名稱一致時,則可在執行匯出動作前,先變更DataSet中DataTable的TableName屬性值,例如: DataSet物件變數.Tables(索引值).TableName = "Book" 此時匯出的標籤名稱將變成<Book></Book>

30 DataSet物件與XML - DataSet記錄與XML的匯入匯出
由DataSet匯出成XML Schema文件格式 DataSet同時也提供將資料匯出成XML Schema檔案的方法- WriteXmlSchema(),此方法將匯出成xsd檔案,以搭配xml檔案做使用,方法建構子如下:

31 DataSet物件與XML - DataSet記錄與XML的匯入匯出
WriteXmlSchema寫入到檔案的方式與WriteXml類似,例如: DataSet物件變數.WriteXmlXml( Server.MapPath(".") & "\dsXML.xsd")

32 DataSet物件與XML - DataSet記錄與XML的匯入匯出
DataSet匯入XML文件格式 當有XML文件欲匯入到DataSet中做使用時,只要透過ReadXml()方法即可,其常用方法如下表所示:

33 DataSet物件與XML - DataSet記錄與XML的匯入匯出
以下為以ReadXml(String)方法將XML檔案匯入的範例: DataSet物件變數.ReadXml( Server.MapPath(".") & "\dsXML.XML") 方法中指定路徑及檔案名稱的方式,即可將XML檔案匯入至DataSet。

34 DataSet物件與XML - DataSet記錄與XML的匯入匯出
DataSet匯入XML Schema文件格式 當有XML Schema文件欲匯入到DataSet中做使用時,只要透過ReadXmlSchema()方法即可,其常用方法如下表所示:

35 DataSet物件與XML - DataSet記錄與XML的匯入匯出
以下為以ReadXmlSchema(String)方法將XML檔案匯入的範例: DataSet物件變數.ReadXmlSchema( Server.MapPath(".")& "\dsXML.XSD") 在方法中指定路徑及檔案名稱即可將XML Schema檔案匯入DataSet。

36 DataSet物件與XML - DataSet記錄與XML的匯入匯出
DataSet匯出XML文件並顯示在網頁上 若希望直接以XML格式的方式直接呈現在網頁上時,此時可以透過DataSet的GetXml()方法,直接將取得的XML格式字串寫入到網頁中。

37 DataSet物件與XML - DataSet與XML資料的整合
DataSet以表格化的方式儲存及處理資料,好處在於與資料庫的結構相同,方便將資料庫與DataSet做整合運用,但XML資料則是以階層為主的結構,節點的存取方式讓解析XML資料的程式方便做搜尋與儲存。 DataSet與XML資料分別代表關聯式與階層式的資料結構,為了讓這兩者的資料能夠互相整合運用,因此.NET提供兩種類別做為DataSet與XML資料的溝通媒介,分別為XmlDocument及XmlDataDocument。

38 DataSet物件與XML - DataSet與XML資料的整合

39 DataSet物件與XML - DataSet與XML資料的整合
XmlDataDocument類別中的常用屬性如下表所示:

40 DataSet物件與XML - DataSet與XML資料的整合
XmlDataDocument類別的常用方法

41 DataSet物件與XML - DataSet與XML資料的整合
XmlDataDocument類別的常用方法


Download ppt "第 10 章 ADO.NET與XML."

Similar presentations


Ads by Google