演练:将 XML 数据读取到数据集

更新:2007 年 11 月

ADO.NET 提供使用 XML 数据的简单方法。在此演练中,您将创建一个将 XML 数据加载到数据集中的 Windows 应用程序。然后,该数据集将显示在一个 DataGridView 中。最后,将在一个文本框中显示基于 XML 文件内容的 XML 架构。

本演练由五个主要步骤组成:

  1. 创建新项目。

  2. 创建要读入数据集的 XML 文件。

  3. 创建用户界面。

  4. 创建数据集、读取 XML 文件并将其显示在 DataGridView 控件中。

  5. 添加代码,以便根据 XML 文件在 TextBox 控件中显示 XML 架构。

说明:

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

创建新项目

在这一步骤中,您将创建一个将包含此演练的 Visual Basic、Visual C# 或 Visual J# 项目。

创建新的 Windows 项目

  1. 从“文件”菜单创建一个新的项目。

  2. 将该项目命名为 ReadingXML。

  3. 选择“Windows 应用程序”,然后单击“确定”。有关更多信息,请参见创建基于 Windows 的应用程序

    创建 ReadingXML 项目并将其添加到“解决方案资源管理器”中。

生成要读入数据集的 XML 文件

由于本演练的重点在于将 XML 数据读入到数据集中,所以提供了 XML 文件的内容。

创建将读入数据集的 XML 文件

  1. 从“项目”菜单中选择“添加新项”。

  2. 选择“XML 文件”,指定文件名为 authors.xml,然后单击“添加”。

    XML 文件即加载到设计器中并可供编辑。

  3. 将以下代码粘贴到 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 控件中。

    • 另一个按钮从数据集中提取架构,然后通过一个 StringWriter 将其显示在 TextBox 控件中。

向窗体添加控件

  1. 在“设计”视图中打开 Form1。

  2. 将以下控件从“工具箱”中拖动到窗体上:

  3. 设置下列属性:

    控件

    属性

    设置

    TextBox1

    Multiline

    true

     

    ScrollBars

    Vertical

    Button1

    Name

    ReadXmlButton

     

    Text

    Read XML

    Button2

    Name

    ShowSchemaButton

     

    Text

    Show Schema

创建将接收 XML 数据的数据集

在此下一个过程中,会创建一个名为 authors 的新数据集。有关数据集的更多信息,请参见 “Visual Studio 中的数据集”概述

创建将接收 XML 数据的新数据集

  1. 对于在“解决方案资源管理器”中选择的“Form1”的源文件,在“解决方案资源管理器”工具栏中单击“视图设计器”按钮。

  2. “工具箱”->“数据”选项卡 中将 DataSet 拖动到 Form1 上。

  3. “添加数据集”对话框 上选择“非类型化数据集”,然后单击“确定”。

    DataSet1随即被添加到组件栏。

  4. 在“属性”窗口中,将 Name 和 DataSetName 属性设置为 AuthorsDataSet。

创建将 XML 读入数据集的事件处理程序

“Read XML”按钮将 XML 文件读入数据集并对 DataGridView 设置将其绑定到该数据集的属性。

添加代码到 ReadXmlButton_Click 事件处理程序

  1. 在“解决方案资源管理器”中,选择“Form1”,然后单击“解决方案资源管理器”工具栏上的“视图设计器”按钮。

  2. 双击 Read XML 按钮。

    “代码编辑器”打开并定位到 ReadXmlButton_Click 事件处理程序。

  3. 将下列代码键入到 ReadXmlButton_Click 事件处理程序中:

    Private Sub ReadXmlButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles ReadXmlButton.Click
    
        Dim filePath As String = "Complete path where you saved the XML file"
    
        AuthorsDataSet.ReadXml(filePath)
    
        DataGridView1.DataSource = AuthorsDataSet
        DataGridView1.DataMember = "authors"
    End Sub
    
    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 中显示架构的事件处理程序

“Show Schema”按钮将创建一个填充架构并在 TextBox 中显示的 StringWriter 对象。

添加代码到 ShowSchemaButton_Click 事件处理程序

  1. 在“解决方案资源管理器”中,选择“Form1”,并单击“视图设计器”按钮。

  2. 双击 Show Schema 按钮。

    “代码编辑器”打开并定位到 ShowSchemaButton_Click 事件处理程序。

  3. 将下列代码键入到 ShowSchemaButton_Click 事件处理程序中。

    Private Sub ShowSchemaButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles ShowSchemaButton.Click
    
        Dim swXML As New System.IO.StringWriter()
        AuthorsDataSet.WriteXmlSchema(swXML)
        TextBox1.Text = swXML.ToString
    End Sub
    
    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. 单击 Read XML 按钮。

    DataGridView 显示 XML 文件的内容。

  3. 单击 Show Schema 按钮。

    文本框显示 XML 文件的 XML 架构。

后续步骤

本演练显示将 XML 文件读入数据集以及基于 XML 文件内容创建架构的基本步骤。下一步可能要执行以下几项任务:

  • 编辑数据集中的数据并将其写出为 XML。有关更多信息,请参见 WriteXml

  • 编辑数据集中的数据并将其写出到数据库中。有关更多信息,请参见 保存数据

请参见

其他资源

数据演练

访问数据 (Visual Studio)

准备应用程序以接收数据

Visual Studio 中的 XML 工具