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

注意

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

ADO.NET 提供簡單的方法,用於處理 XML 資料。 在本逐步解說中,您會建立將 XML 資料載入至資料集的 Windows 應用程式。 資料集接著會顯示在 DataGridView 控制項中。 最後,以 XML 檔案內容為基礎的 XML 結構描述會顯示在文字輸入框中。

必要條件

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

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

若要安裝,請開啟 Visual Studio 安裝程式並選擇您要修改 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
    Text Read XML
    Button2 名稱 ShowSchemaButton
    Text Show Schema

建立接收 XML 資料的資料集

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

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

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

  3. 在 [新增資料集] 對話方塊中,選取 [不具型別的資料集],然後選取 [確定]

    DataSet1 會新增至元件匣。

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

建立事件處理常式以將 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 = 項目變更為正確的路徑。

建立事件處理常式以在文字方塊中顯示結構描述

[顯示結構描述] 按鈕會建立填入結構描述,並顯示在 TextBox 控制項中的 StringWriter 物件。

  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

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