分享方式:


將 XML 資料讀取至 .NET Framework 應用程式中的數據集

備註

類別 DataSet 和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的數據。 這些技術特別適用於可讓使用者修改數據並將變更保存回資料庫的應用程式。 雖然數據集是經過證實的成功技術,但新 .NET 應用程式的建議方法是使用 Entity Framework Core。 Entity Framework 提供更自然的方式,以表格式數據作為物件模型使用,而且具有更簡單的程序設計介面。

ADO.NET 提供簡單的方法來處理 XML 數據。 在本逐步解說中,您會建立將 XML 數據載入資料集的 Windows 應用程式。 數據集接著會在控件DataGridView中顯示。 最後,根據 XML 檔案的內容,XML 架構會顯示在文字框中。

先決條件

若要完成本教學課程,您需要已安裝下列工作負載的 Visual Studio:

  • .NET 桌面開發
  • 資料儲存和處理

若要安裝它們,請開啟 Visual Studio Installer,然後選擇您想要修改的 Visual Studio 版本旁的 [修改] (或 [更多>修改])。 請參閱 修改 Visual Studio

建立新專案

為 C# 或 Visual Basic 建立新的 Windows Forms 應用程式 專案。 將專案命名為 ReadingXML

產生要讀取至數據集的 XML 檔案

由於本逐步解說著重於將 XML 數據讀入數據集,因此會提供 XML 檔案的內容。

  1. 在 [ 專案] 功能表上,選取 [新增專案]。

  2. 選取 [XML 檔案],將檔案命名 為authors.xml,然後選取 [ 新增]。

    XML 檔案會載入設計工具,並準備好進行編輯。

  3. 將下列 XML 資料貼到 XML 宣告下方的編輯器中:

    <Authors_Table>
      <authors>
        <au_id>172-32-1176</au_id>
        <au_lname>White</au_lname>
        <au_fname>Johnson</au_fname>
        <phone>408 496-7223</phone>
        <address>10932 Bigge Rd.</address>
        <city>Menlo Park</city>
        <state>CA</state>
        <zip>94025</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>213-46-8915</au_id>
        <au_lname>Green</au_lname>
        <au_fname>Margie</au_fname>
        <phone>415 986-7020</phone>
        <address>309 63rd St. #411</address>
        <city>Oakland</city>
        <state>CA</state>
        <zip>94618</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>238-95-7766</au_id>
        <au_lname>Carson</au_lname>
        <au_fname>Cheryl</au_fname>
        <phone>415 548-7723</phone>
        <address>589 Darwin Ln.</address>
        <city>Berkeley</city>
        <state>CA</state>
        <zip>94705</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>267-41-2394</au_id>
        <au_lname>Hunter</au_lname>
        <au_fname>Anne</au_fname>
        <phone>408 286-2428</phone>
        <address>22 Cleveland Av. #14</address>
        <city>San Jose</city>
        <state>CA</state>
        <zip>95128</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>274-80-9391</au_id>
        <au_lname>Straight</au_lname>
        <au_fname>Dean</au_fname>
        <phone>415 834-2919</phone>
        <address>5420 College Av.</address>
        <city>Oakland</city>
        <state>CA</state>
        <zip>94609</zip>
        <contract>true</contract>
      </authors>
    </Authors_Table>
    
  4. 在 [ 檔案] 功能表上,選取 [ 儲存 authors.xml]。

建立使用者介面

此應用程式的使用者介面包含下列各項:

  • DataGridView控件,將 XML 檔案的內容顯示為數據。

  • TextBox顯示 XML 檔案之 XML 架構的控制件。

  • 兩個 Button 控件。

    • 一個按鈕會將 XML 檔案讀入資料集,並在控件中 DataGridView 顯示它。

    • 第二個按鈕從數據集擷取架構,並透過 StringWriterTextBox 控件中顯示出來。

將控件新增至表單

  1. 在設計檢視中開啟 Form1

  2. [工具箱] 將下列控件拖曳到窗體上:

  3. 設定下列屬性:

    管理 房產 設定
    TextBox1 多行 true
    [ScrollBars] 垂直
    Button1 名稱 ReadXmlButton
    文字 Read XML
    Button2 名稱 ShowSchemaButton
    文字 Show Schema

建立接收 XML 數據的數據集

在此步驟中,您會建立名為 authors的新數據集。 如需數據集的詳細資訊,請參閱 Visual Studio中的數據集工具

  1. [方案總管] 中,選取 Form1 的來源檔案,然後選取 [方案總管] 工具列上的 [檢視設計工具] 按鈕。

  2. 從 [ 工具箱]、[數據] 索引標籤,將 DataSet 拖曳到 Form1

  3. 在 [ 新增數據集] 對話框中,選取 [ 不具類型的數據集],然後選取 [ 確定]。

    DataSet1 會新增至元件匣。

  4. 在 [屬性] 視窗中,設定 [名稱] 和 DataSetName 屬性給 AuthorsDataSet

建立事件處理程式以將 XML 檔案讀取至數據集

[ 讀取 XML] 按鈕會將 XML 檔案讀取至數據集。 然後,它會在系結至數據集的 DataGridView 控件上設定屬性。

  1. [方案總管] 中,選取 [Form1],然後選取 [方案總管] 工具列上的 [檢視設計工具] 按鈕。

  2. 按兩下 [ 讀取 XML] 按鈕。

    代碼編輯器ReadXmlButton_Click事件處理程序中開啟。

  3. 在事件處理程式中 ReadXmlButton_Click 輸入下列程式代碼:

    private void ReadXmlButton_Click(object sender, EventArgs e)
    {
        string filePath = "Complete path where you saved the XML file";
    
        AuthorsDataSet.ReadXml(filePath);
    
        dataGridView1.DataSource = AuthorsDataSet;
        dataGridView1.DataMember = "authors";
    }
    
  4. ReadXMLButton_Click事件處理程式代碼中,將項目filepath =變更為正確的路徑。

建立事件處理程式以在文字框中顯示架構

[ 顯示架構 ] StringWriter 按鈕會建立填滿架構的物件,並顯示在 控件中 TextBox

  1. [方案總管] 中,選取 [Form1],然後選取 [ 檢視設計工具 ] 按鈕。

  2. 按兩下 [ 顯示架構] 按鈕。

    代碼編輯器 在事件處理程序ShowSchemaButton_Click開啟。

  3. 將下列程式代碼貼到 ShowSchemaButton_Click 事件處理程式中。

    private void ShowSchemaButton_Click(object sender, EventArgs e)
    {
        System.IO.StringWriter swXML = new System.IO.StringWriter();
        AuthorsDataSet.WriteXmlSchema(swXML);
        textBox1.Text = swXML.ToString();
    }
    

測試表單

您現在可以測試表單,以確保其如預期般運作。

  1. 選取 F5 以執行應用程式。

  2. 選取 [ 讀取 XML] 按鈕。

    DataGridView 會顯示 XML 檔案的內容。

  3. 選取 [ 顯示架構] 按鈕。

    文字框會顯示 XML 檔案的 XML 架構。

後續步驟

本逐步解說會教導您將 XML 檔案讀取至數據集的基本概念,以及根據 XML 檔案的內容建立架構。 以下是您接下來可能執行的一些工作:

  • 編輯數據集中的數據,並將其寫回 XML。 如需詳細資訊,請參閱WriteXml

  • 編輯數據集中的數據,並將其寫出至資料庫。