41
10 10 ADO.NET ADO.NET XML XML

第 10 章 ADO.NET 與 XML

  • Upload
    kendis

  • View
    41

  • Download
    6

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 第  10  章  ADO.NET 與 XML

第 第 10 10 章 章 ADO.NETADO.NET 與與 XMLXML

Page 2: 第  10  章  ADO.NET 與 XML

簡介簡介 ADO.NETADO.NET- - 什麼是什麼是 ADO.NETADO.NET

ADOADO 的全名為的全名為 ActiveX Data ObjectsActiveX Data Objects ,是早期,是早期MicrosoftMicrosoft 提供給程式設計師在程式設計時,運用提供給程式設計師在程式設計時,運用OLE DBOLE DB 的應用程式設計介面(的應用程式設計介面( Application Application Programming InterfaceProgramming Interface )。)。

那什麼是那什麼是 OLE DBOLE DB 呢?呢? OLE DBOLE DB 技術是由技術是由 MicrosoftMicrosoft所提出的所提出的 Component Object ModelComponent Object Model (( COMCOM )介面)介面集合,用於提供程式設計師一個一致性的資料存取介集合,用於提供程式設計師一個一致性的資料存取介面,方便存取儲存於不同資訊來源的資料。面,方便存取儲存於不同資訊來源的資料。

Page 3: 第  10  章  ADO.NET 與 XML

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

Page 4: 第  10  章  ADO.NET 與 XML

簡介簡介 ADO.NETADO.NET- ADO.NET- ADO.NET 架構架構 ADO.NETADO.NET 架構中主要提供兩種資料存取方式:架構中主要提供兩種資料存取方式:

.NET Framework.NET Framework 資料提供者資料提供者 DataSetDataSet 物件物件

Page 5: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供者資料提供者- - 資料提供者簡介資料提供者簡介 ADO.NETADO.NET 架構中主要負責資料存取的類別為架構中主要負責資料存取的類別為

System.DataSystem.Data ,在此類別中主要提供與不同資料來源,在此類別中主要提供與不同資料來源建立連線的功能,各種資料存取元件,例如:建立連線的功能,各種資料存取元件,例如:DataSetDataSet 、、 DataTableDataTable 、、 DataRowDataRow 及及 DataColumnDataColumn 等,等,因此可以利用此這些元件進行資料處理動作。因此可以利用此這些元件進行資料處理動作。

由於各種不同的資料來源有不同的存取介面,因此在由於各種不同的資料來源有不同的存取介面,因此在System.DataSystem.Data 類別中提供了不同的資料來源命名空間,類別中提供了不同的資料來源命名空間,常見的如下:常見的如下:

System.Data.OdbcSystem.Data.Odbc System.Data.OleDbSystem.Data.OleDb System.Data.OracleClientSystem.Data.OracleClient System.Data.SqlClientSystem.Data.SqlClient

Page 6: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- - 資料提供者簡介資料提供者簡介 在在 .NET Framework.NET Framework 中的資料提供者主要會中的資料提供者主要會

提供兩種資料存取模式:提供兩種資料存取模式: 連線模式連線模式 離線模式離線模式

Page 7: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- - 資料提供者簡介資料提供者簡介 在在 .NET Framework.NET Framework 中的資料提供者主要會中的資料提供者主要會

提供兩種資料存取模式:提供兩種資料存取模式: 連線模式連線模式 離線模式離線模式

連線模式主要經由以下四個元件類型達成連線模式主要經由以下四個元件類型達成 ConnectionConnection CommandCommand DataAdapterDataAdapter DataReader DataReader

Page 8: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- - 建立資料庫連結建立資料庫連結 在在 ASP.NETASP.NET 網頁中,操作資料庫的第一步就是要建網頁中,操作資料庫的第一步就是要建

立網頁與資料庫的連結。立網頁與資料庫的連結。 ADO.NETADO.NET 物件用於建立與物件用於建立與資料庫的連結之物件為資料庫的連結之物件為 ConnectionConnection 物件。物件。

以下語法運用以下語法運用 System.Data.OleDbSystem.Data.OleDb 類別示範,將在程類別示範,將在程式中引入式中引入 System.Data.OleDbSystem.Data.OleDb 命名空間。命名空間。

Import Namespace="System.Data.OleDb" Import Namespace="System.Data.OleDb" 接著,建立一個接著,建立一個 OleDbConnectionOleDbConnection 物件,並設定某物物件,並設定某物

件變數為該型態的變數。件變數為該型態的變數。Dim Dim 物件變數 物件變數 as OleDbConnectionas OleDbConnection

Page 9: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料資料提供者提供者- - 建立資料庫連結建立資料庫連結 有了物件變數後,可以使用有了物件變數後,可以使用 NewNew 關鍵字產生一個關鍵字產生一個

OleDbConnectionOleDbConnection 物件實體,並將物件變數指向該實物件實體,並將物件變數指向該實體,其宣告語法如下:體,其宣告語法如下:

物件變數 物件變數 = new OleDbConnection()= new OleDbConnection() 以下敘述將建立一個以下敘述將建立一個 OleDbConnectionOleDbConnection 物件,並由物件,並由

NewNew 關鍵字產生實體物件後,由變數指向該實體物件。關鍵字產生實體物件後,由變數指向該實體物件。

Page 10: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料資料提供者提供者- - 建立資料庫連結建立資料庫連結 完成完成 OleDbConnectionOleDbConnection 物件的建立後,接著,必須透過物件的建立後,接著,必須透過

ConnectionStringConnectionString 屬性設定連線字串,以便在建立資料屬性設定連線字串,以便在建立資料庫連線時正確的找到資料庫位置,並建立連線。庫連線時正確的找到資料庫位置,並建立連線。

以下語法以連結到以下語法以連結到 AccessAccess 資料庫檔案為例,示範如下:資料庫檔案為例,示範如下:"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="Provider=Microsoft.Jet.OLEDB.4.0;DataSource= 資料庫路徑名稱資料庫路徑名稱““

以下語法利用以下語法利用 connOleDbconnOleDb 物件開啟物件開啟 WebWeb 伺服器上的伺服器上的BookDB.mdbBookDB.mdb ,由於該資料庫存在於,由於該資料庫存在於 ASP.NETASP.NET 網頁所網頁所在的目錄下,因此,資料庫的路徑與名稱可利用在的目錄下,因此,資料庫的路徑與名稱可利用 ServerServer物件的物件的 MapPath()MapPath() 方法取得。方法取得。

Page 11: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料資料提供者提供者- - 建立資料庫連結建立資料庫連結 ConnectionConnection 物件的關閉與重設物件的關閉與重設

當使用完當使用完 ConnectionConnection 物件後,您可以呼叫物件後,您可以呼叫Close()Close() 方法,關閉資料庫的連結,語法如下:方法,關閉資料庫的連結,語法如下:

資料提供者資料提供者 ConnectionConnection 物件變數物件變數 .Close().Close() 完成關閉資料庫連結後,完成關閉資料庫連結後, .NET.NET 共通執行環境將共通執行環境將

自動回收未使用的記憶體空間。例如:自動回收未使用的記憶體空間。例如:

Page 12: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- DataAdapter- DataAdapter 的觀念與操作的觀念與操作 與資料來源建立連線與資料來源建立連線

首先建立一個首先建立一個 OleDbDataAdapterOleDbDataAdapter 物件,並設定某物件物件,並設定某物件變數為該型態的變數。變數為該型態的變數。

Dim Dim 物件變數 物件變數 as OleDbDataAdapteras OleDbDataAdapter 有了物件變數後,可以使用有了物件變數後,可以使用 NewNew 關鍵字產生一個關鍵字產生一個

OleDbDataAdapterOleDbDataAdapter 物件實體,並將物件變數指向該實物件實體,並將物件變數指向該實體,其宣告語法如下:體,其宣告語法如下:

物件變數 物件變數 = new OleDbConnection()= new OleDbConnection()

Page 13: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- DataAdapter- DataAdapter 的觀念與操作的觀念與操作 OleDbDataAdapterOleDbDataAdapter 的初始建構子共有四種參數類型可的初始建構子共有四種參數類型可

使用,如下所示:使用,如下所示:

Page 14: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- DataAdapter- DataAdapter 的觀念與操作的觀念與操作 以下敘述將建立一個以下敘述將建立一個 OleDbConnectionOleDbConnection 物件,並由物件,並由 NewNew

關鍵字產生實體物件後,由變數指向該實體物件。同時關鍵字產生實體物件後,由變數指向該實體物件。同時使用使用 OleDbDataAdapter(String,String)OleDbDataAdapter(String,String) 的建構子做為初的建構子做為初始化物件方式,其中,第一個始化物件方式,其中,第一個 StringString 以以 SelectSelect 語法取得語法取得BookBook 資料表中所有的資料列,第二個資料表中所有的資料列,第二個 StringString 則指定連則指定連接到接到 BookDB.mdbBookDB.mdb 的的 AccessAccess 資料庫檔案。資料庫檔案。

Page 15: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- DataAdapter- DataAdapter 的觀念與操作的觀念與操作 以下敘述將建立一個以下敘述將建立一個 OleDbConnectionOleDbConnection 物件,並由物件,並由 NewNew

關鍵字產生實體物件後,由變數指向該實體物件。同時關鍵字產生實體物件後,由變數指向該實體物件。同時使用使用 OleDbDataAdapter(String,String)OleDbDataAdapter(String,String) 的建構子做為初的建構子做為初始化物件方式,其中,第一個始化物件方式,其中,第一個 StringString 以以 SelectSelect 語法取得語法取得BookBook 資料表中所有的資料列,第二個資料表中所有的資料列,第二個 StringString 則指定連則指定連接到接到 BookDB.mdbBookDB.mdb 的的 AccessAccess 資料庫檔案。資料庫檔案。

Page 16: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- DataAdapter- DataAdapter 的觀念與操作的觀念與操作 取得資料來源中的資料取得資料來源中的資料

建立負責資料存取的建立負責資料存取的 DataAdapterDataAdapter 實體物件後,實體物件後,接下來便是要取得其資料,在此接下來便是要取得其資料,在此 DataAdapterDataAdapter提供了提供了 Fill()Fill() 方法,此方法可以將資料填入到所方法,此方法可以將資料填入到所指定的物件中,例如:指定的物件中,例如: DataSetDataSet 及及 DataTableDataTable 中,中,之後再運用此物件進行資料存取與展示的動作。之後再運用此物件進行資料存取與展示的動作。

Page 17: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- DataAdapter- DataAdapter 的觀念與操作的觀念與操作 以下敘述將建立一個以下敘述將建立一個 DataSetDataSet 物件,並實作物件,並實作

DataSetDataSet 實體物件: 實體物件: Dim Dim 物件變數 物件變數 as DataSet = new DataSet()as DataSet = new DataSet()

之後再利用之後再利用 DataAdapterDataAdapter 的的 Fill()Fill() 方法將資料填方法將資料填入到物件中:入到物件中:

DataAdapter.Fill(DataSetDataAdapter.Fill(DataSet 物件變數物件變數 ))

Page 18: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- DataAdapter- DataAdapter 的觀念與操作的觀念與操作 Fill()Fill() 方法的定義中,除了會將資料填入到指定方法的定義中,除了會將資料填入到指定

的物件變數外,亦會傳回填入的資料筆數,此的物件變數外,亦會傳回填入的資料筆數,此時可以使用整數變數接收資料筆數值,如下所時可以使用整數變數接收資料筆數值,如下所示:示:

Page 19: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料提供資料提供者者- DataSet- DataSet 的觀念與操作的觀念與操作 DataTable DataTable 類別類別

提供資料表格存放時所需的方法與屬性,主要由代表列提供資料表格存放時所需的方法與屬性,主要由代表列的的 DataRowDataRow 類別與代表行類別與代表行 DataColumnDataColumn 類別組成。下類別組成。下圖以一個聯絡資料的資料表格來表示,其中圖以一個聯絡資料的資料表格來表示,其中IndexIndex 、、 NameName 、、 CategoryCategory 、、 AddressAddress 及及 OtherOther 代表行代表行名稱,行名稱由名稱,行名稱由 DataColumnDataColumn 類別處理,而每一列資料類別處理,而每一列資料則由則由 DataRowDataRow 類別處理,示意如下:類別處理,示意如下:

Page 20: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料資料提供者提供者- DataSet- DataSet 的觀念與操作的觀念與操作 DataTableDataTable 透過透過 ColumnsColumns 屬性指向一個屬性指向一個

DataColumnCollectionDataColumnCollection 類別的實體物類別的實體物件,件, DataColumnCollectionDataColumnCollection 類別儲存類別儲存 DataColumnDataColumn 物件物件的集合。的集合。

DataTableDataTable 透過透過 RowsRows 屬性則指向屬性則指向 DataRowCollectionDataRowCollection類別實體物件,其儲存類別實體物件,其儲存 DataRowDataRow 物件的集合。物件的集合。

Page 21: 第  10  章  ADO.NET 與 XML

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

Page 22: 第  10  章  ADO.NET 與 XML

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

Page 23: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料資料提供者提供者- DataSet- DataSet 的觀念與操作的觀念與操作 DataColumnDataColumn 類別類別

DataColumnDataColumn 類別將操作單一類別將操作單一 ColumnColumn ,因為,因為DataColumnDataColumn 是模擬資料表內容,當建立資料表時,資是模擬資料表內容,當建立資料表時,資料庫所需設定的欄位資訊,如:欄位名稱、資料型態及料庫所需設定的欄位資訊,如:欄位名稱、資料型態及預設值等資訊,預設值等資訊, DataColumnDataColumn 類別亦提供了相對應的屬類別亦提供了相對應的屬性,下表為常用屬性:性,下表為常用屬性:

Page 24: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料資料提供者提供者- DataSet- DataSet 的觀念與操作的觀念與操作 DataRowDataRow 類別類別

DataRowDataRow 類別主要處理單一資料列,建立單一的類別主要處理單一資料列,建立單一的DataRowDataRow 物件時,必須由具有物件時,必須由具有 DataColumnDataColumn 的的DataTableDataTable 變數中,透過變數中,透過 NewRow()NewRow() 方法產生一筆新的方法產生一筆新的資料列,並指定給資料列,並指定給 DataRowDataRow 變數,語法如下:變數,語法如下:

Dim DataRowDim DataRow 變數 變數 as DataRow = as DataRow =

DataTableDataTable 變變數數 .NetRow().NetRow()

Page 25: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料資料提供者提供者- DataSet- DataSet 的觀念與操作的觀念與操作 有了有了 DataRowDataRow 變數後,再透過變數後,再透過 ItemItem 屬性存取資料列中屬性存取資料列中

的每一個資料行,底下以前面介紹過的資料表來說明:的每一個資料行,底下以前面介紹過的資料表來說明:

當當 DataRowDataRow 變數指向一筆資料列時,透過變數指向一筆資料列時,透過 DataRowDataRow 的的ItemItem 屬性存取每一個欄位,例如:屬性存取每一個欄位,例如:IndexIndex 、、 NameName 、、 Category…Category… 等,常見存取語法如下:等,常見存取語法如下:

DataRow(DataRow( 資料列索引值資料列索引值 ).Item().Item( 資料行索引值資料行索引值 ))

DataRow(DataRow( 資料列索引值資料列索引值 ).Item(").Item(" 資料行名稱資料行名稱 ") ")

其中資料列索引值及資料行索引值皆以其中資料列索引值及資料行索引值皆以 00 做為起始值,做為起始值,因此使用上需特別留意。 因此使用上需特別留意。

Page 26: 第  10  章  ADO.NET 與 XML

.NET Framework.NET Framework 資料資料提供者提供者- DataSet- DataSet 的觀念與操作的觀念與操作 DataSetDataSet 與資料來源繫結與資料來源繫結

範例範例 10-710-7 將透過將透過 OleDbDataAdapterOleDbDataAdapter 物件連結物件連結AccessAccess 資料庫檔案,並取回資料表資料庫檔案,並取回資料表 - Book- Book 內容,內容,首先以程式方式顯示各資料行名稱,最後以繫首先以程式方式顯示各資料行名稱,最後以繫結到結到 GridViewGridView控制項,做為資料展示方式。控制項,做為資料展示方式。

Page 27: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出

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

Page 28: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出 以下程式碼使用以下程式碼使用 WriteXml()WriteXml() 方法,並帶入方法,並帶入 XMLXML 檔案路檔案路

徑與預計寫入的檔案名稱:徑與預計寫入的檔案名稱:DataSetDataSet 物件變數物件變數 .WriteXml(.WriteXml(

Server.MapPath(".") & "\dsXML.XML")Server.MapPath(".") & "\dsXML.XML")

由於在由於在 WebWeb 環境中通常不使用絕對路徑做為存取檔案方環境中通常不使用絕對路徑做為存取檔案方式,因此這裡透過式,因此這裡透過 ServerServer 變數的變數的 MapPath()MapPath() 方法。方法方法。方法中的中的““ .”.” 代表當下網站的根目錄,因此代表當下網站的根目錄,因此Server.MapPath(“.”)Server.MapPath(“.”) 便可以取得網站執行時的路徑,如:便可以取得網站執行時的路徑,如:

此時再加上此時再加上 "\dsXML.XML""\dsXML.XML" 的的 XMLXML 檔案名稱便可以組檔案名稱便可以組合成完整的檔案路徑:合成完整的檔案路徑:

Page 29: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出 若您想要讓若您想要讓 XMLXML 中的中的 TableTable 名稱與原始的資料表名稱一名稱與原始的資料表名稱一

致時,則可在執行匯出動作前,先變更致時,則可在執行匯出動作前,先變更 DataSetDataSet 中中DataTableDataTable 的的 TableNameTableName 屬性值,例如:屬性值,例如:

DataSetDataSet 物件變數物件變數 .Tables(.Tables( 索引值索引值 ).TableName = "Book").TableName = "Book" 此時匯出的標籤名稱將變成此時匯出的標籤名稱將變成 <Book></Book><Book></Book>

Page 30: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出 由由 DataSetDataSet 匯出成匯出成 XML SchemaXML Schema 文件格式文件格式

DataSetDataSet 同時也提供將資料匯出成同時也提供將資料匯出成 XML SchemaXML Schema 檔案的檔案的方法方法 - WriteXmlSchema()- WriteXmlSchema() ,此方法將匯出成,此方法將匯出成 xsdxsd 檔案,檔案,以搭配以搭配 xmlxml 檔案做使用,方法建構子如下:檔案做使用,方法建構子如下:

Page 31: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出

WriteXmlSchemaWriteXmlSchema 寫入到檔案的方式與寫入到檔案的方式與WriteXmlWriteXml 類似,例如:類似,例如:

DataSetDataSet 物件變數物件變數 .WriteXmlXml(.WriteXmlXml(

Server.MapPath(".") & "\dsXML.xsd")Server.MapPath(".") & "\dsXML.xsd")

Page 32: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出

DataSetDataSet 匯入匯入 XMLXML文件格式文件格式當有當有 XMLXML文件欲匯入到文件欲匯入到 DataSetDataSet 中做使用時,中做使用時,只要透過只要透過 ReadXml()ReadXml() 方法即可,其常用方法如下方法即可,其常用方法如下表所示:表所示:

Page 33: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出

以下為以以下為以 ReadXml(String)ReadXml(String) 方法將方法將 XMLXML 檔案匯檔案匯入的範例:入的範例:DataSetDataSet 物件變數物件變數 .ReadXml(.ReadXml(

Server.MapPath(".") & "\dsXML.XML")Server.MapPath(".") & "\dsXML.XML") 方法中指定路徑及檔案名稱的方式,即可將方法中指定路徑及檔案名稱的方式,即可將

XMLXML 檔案匯入至檔案匯入至 DataSetDataSet 。。

Page 34: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出

DataSetDataSet 匯入匯入 XML SchemaXML Schema文件格式文件格式當有當有 XML SchemaXML Schema文件欲匯入到文件欲匯入到 DataSetDataSet 中做使中做使用時,只要透過用時,只要透過 ReadXmlSchema()ReadXmlSchema() 方法即可,方法即可,其常用方法如下表所示:其常用方法如下表所示:

Page 35: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出

以下為以以下為以 ReadXmlSchema(String)ReadXmlSchema(String) 方法將方法將 XMLXML檔案匯入的範例:檔案匯入的範例:

DataSetDataSet 物件變數物件變數 .ReadXmlSchema(.ReadXmlSchema(

Server.MapPath(".")& "\dsXML.XSD")Server.MapPath(".")& "\dsXML.XSD") 在方法中指定路徑及檔案名稱即可將在方法中指定路徑及檔案名稱即可將 XML XML

SchemaSchema 檔案匯入檔案匯入 DataSetDataSet 。。

Page 36: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 記錄與記錄與 XMLXML 的匯入匯出的匯入匯出

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

Page 37: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 與與 XMLXML 資料的整合資料的整合 DataSetDataSet 以表格化的方式儲存及處理資料,好處以表格化的方式儲存及處理資料,好處

在於與資料庫的結構相同,方便將資料庫與在於與資料庫的結構相同,方便將資料庫與DataSetDataSet 做整合運用,但做整合運用,但 XMLXML 資料則是以階層資料則是以階層為主的結構,節點的存取方式讓解析為主的結構,節點的存取方式讓解析 XMLXML 資料資料的程式方便做搜尋與儲存。的程式方便做搜尋與儲存。

DataSetDataSet 與與 XMLXML 資料分別代表關聯式與階層式資料分別代表關聯式與階層式的資料結構,為了讓這兩者的資料能夠互相整合的資料結構,為了讓這兩者的資料能夠互相整合運用,因此運用,因此 .NET.NET 提供兩種類別做為提供兩種類別做為 DataSetDataSet 與與XMLXML 資料的溝通媒介,分別為資料的溝通媒介,分別為 XmlDocumentXmlDocument 及及XmlDataDocumentXmlDataDocument 。 。

Page 38: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 與與 XMLXML 資料的整合資料的整合

Page 39: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 與與 XMLXML 資料的整合資料的整合 XmlDataDocumentXmlDataDocument 類別中的常用屬性如下表所類別中的常用屬性如下表所

示: 示:

Page 40: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 與與 XMLXML 資料的整合資料的整合 XmlDataDocumentXmlDataDocument 類別的常用方法類別的常用方法

Page 41: 第  10  章  ADO.NET 與 XML

DataSetDataSet 物件與物件與 XMLXML- DataSet- DataSet 與與 XMLXML 資料的整合資料的整合 XmlDataDocumentXmlDataDocument 類別的常用方法類別的常用方法