Чтение XML-данных в набор данных в приложениях платформа .NET Framework

Примечание.

Наборы данных и связанные классы являются устаревшими технологиями платформа .NET Framework с начала 2000-х годов, которые позволяют приложениям работать с данными в памяти во время отключения приложений от базы данных. Они особенно полезны для приложений, которые позволяют пользователям изменять данные и сохранять изменения обратно в базу данных. Хотя наборы данных оказались очень успешными, мы рекомендуем новым приложениям .NET использовать Entity Framework Core. Entity Framework предоставляет более естественный способ работы с табличными данными в виде объектных моделей, и он имеет более простой интерфейс программирования.

ADO.NET предоставляет простые методы для работы с XML-данными. В этом пошаговом руководстве вы создадите приложение Windows, которое загружает XML-данные в набор данных. Затем набор данных отображается в элементе DataGridView управления. Наконец, xml-схема на основе содержимого XML-файла отображается в текстовом поле.

Необходимые компоненты

Для работы с этим руководством вам потребуется Visual Studio со следующими рабочими нагрузками:

  • Разработка классического приложения .NET.
  • Хранение и обработка данных

Чтобы установить их, откройте Visual Studio Installer и нажмите кнопку "Изменить" (или "Изменить>") рядом с версией Visual Studio, которую вы хотите изменить. См. раздел Изменение Visual Studio.

Создание нового проекта

Создайте проект приложения Windows Forms для C# или Visual Basic. Назовите проект 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 управления.

    • Вторая кнопка извлекает схему из набора данных и отображает StringWriter ее в элементе TextBox управления.

Для добавления элементов управления в форму

  1. Откройте Form1 в режиме конструктора.

  2. Из панели элементов перетащите следующие элементы управления в форму:

    • Один DataGridView элемент управления

    • Один TextBox элемент управления

    • Два Button элемента управления

  3. Задайте следующие свойства:

    Элемент управления Свойство Параметр
    TextBox1 Multiline true
    ScrollBars По вертикали
    Button1 Имя ReadXmlButton
    Текст Read XML
    Button2 Имя ShowSchemaButton
    Текст Show Schema

Создание набора данных, получающего XML-данные

На этом шаге создается новый набор данных с именем authors. Дополнительные сведения о наборах данных см. в разделе "Инструменты набора данных" в Visual Studio.

  1. В Обозреватель решений выберите исходный файл формы 1 и нажмите кнопку конструктора представлений на панели инструментов Обозреватель решений.

  2. На панели элементов вкладка "Данные" перетащите набор данных в 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_Clickfilepath = запись на правильный путь.

Создание обработчика событий для отображения схемы в текстовом поле

Кнопка "Показать схему" создает 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.

  • Измените данные в наборе данных и запишите их в базу данных.