Литмир - Электронная Библиотека
Содержание  
A
A

Создание мостика между подходом, основанным на наборах данных, и моделью, в которой для работы с данными используются строки, обеспечивается объектами ADO.NET DataView и DataTable. Один объект DataSet может содержать любое количество объектов DataTable. Таблица данных (data table) фактически является массивом объектов, аналогичным таблице в базе данных. Объекты DataView — это объекты, предоставляющие методы фильтрации и сортировки поверх объектов DataTable, что позволяет добираться среди содержимого объекта DataSet до данных, которые представляют непосредственный интерес для вашего приложения. Объекты DataView могут также предоставлять отсортированное представление данных (data view), в котором данные упорядочиваются наиболее удобным для использования в приложении и отображения способом. С одной таблицей DataTable может быть связано произвольное количество объектов DataView, для каждого из которых определены свои критерии сортировки и фильтрации, позволяющие создавать пользовательские представления данных.

На настольных компьютерах и серверах .NET Framework поддерживает как "типизированные", так и "нетипизированные" объекты DataSet. В .NET Compact Framework специально поддерживаются только "нетипизированные" объекты DataSet. Может показаться, что тем самым создаются определенные ограничения, однако в действительности это не так, поскольку типизированные объекты DataSet являются просто классами, построенными поверх нетипизированных объектов DataSet, которые жестко связывают имена типизированных полей с лежащими в их основе элементами нетипизированных объектов DataSet. Поскольку типизированный объект DataSet строится поверх нетипизированного класса DataSet, то он, по сути, представляет собой удобную в использовании, но несколько медленнее работающую абстракцию. Приложения, в которых нетипизированные объекты DataSet используются корректным образом, путем поиска и кэширования объектов DataColumn используемых ими столбцов (columns) (в отличие от поиска полей по именам при каждом их использовании), демонстрируют такую же или даже еще лучшую производительность по сравнению с теми, в которых используются типизированные объекты DataSet.

Очень короткий пример использования объектов DataSet, DataTables и XML

Чтобы продемонстрировать основы работы с объектами ADO.NET DataSet, полезно обратиться к примеру. В документации .NET Framework содержится исчерпывающее описание ADO.NET и объектов DataSet. В примере будут показаны лишь самые элементарные операции создания и использования объектов DataSet с целью установления контекста для обсуждения использования ADO.NET на мобильных устройствах.

Приведенный в листинге 14.1 код позволяет создать приложение, представленное на рис. 14.1. Для создания приложения потребуется выполнить следующие действия:

1. Запустите Visual Studio .NET (2003 или более позднюю версию) и выберите в качестве типа приложения C# Smart Device Application.

2. Выберите в качестве целевой платформы Pocket PC. (Для вас будет автоматически создан проект, и на экране появится окно конструктора форм Pocket PC.)

3. Добавьте в форму элемент управления Button. (Ему будет автоматически присвоено имя button1.)

4. Добавьте в форму элемент управления TextBox. (Ему будет автоматически присвоено имя textBox1.)

5. Установите для свойства MultiLine элемента управления TextBox значение true и измените размеры текстового окна таким образом, чтобы оно заняло почти всю форму.

6. Установите для свойства ScrollBar элемента управления TextBox значение vertical.

7. Дважды щелкните на элементе управления Button в окне конструктора форм и введите код функции button1_Click(), приведенный в листинге.

8. Введите весь оставшийся код, приведенный в листинге 14.1.

9. Вернитесь в окно конструктора форм.

10. Установите для свойства MinimizeBox формы значение false. Благодаря этому во время выполнения в верхней правой части формы появится кнопка OK, с помощью которой вы легко сможете закрыть форму и выйти из приложения. Эта возможность оказывается очень полезной при многократном тестировании приложения.

11. Запустите приложение и щелкните на кнопке Button; полученные вами результаты должны воспроизводить те, которые представлены на рис. 14.1.

Программирование мобильных устройств на платформе .NET Compact Framework - image104.jpg

Рис. 14.1. Простой пример, демонстрирующий создание объекта ADO.NET DataSet

Листинг 14.1. Простой пример создания и использования объекта ADO.NET DataSet

//Объект DataSet, который мы собираемся загрузить

System.Data.DataSet m_myDataSet;

//Константы, которые будут использоваться

const string FILE_EMPTY_DATASET = "EmptyDataSet.xml";

const string FILE_1TABLE_DATASET = "1TableDataSet.xml";

const string dividerLine = "-----------------------------\r\n";

const string nextLine = "\r\n";

//-------------------------------------------------------

//Загрузить содержимое файла и присоединить его к тексту,

//содержащемуся в элементе управления textBox1

//-------------------------------------------------------

private void  addFileContentsToTextBox(string fileName) {

 //Открыть файл и считать его содержимое

 System.IO.StreamReader myStreamReader;

 myStreamReader = System.IO.File.OpenText(fileName);

 string fileText = myStreamReader.ReadToEnd();

 //Закрыть файл

 myStreamReader.Close();

 //Присоединить содержимое к тексту, находящемуся в текстовом окне

 textBox1.Text = textBox1.Text +

  dividerLine + "FILE: '" + fileName + "'" + nextLine +

  dividerLine + fileText + nextLine;

}

//-------------------------------------------------------

//1. Создает набор данных,

// сохраняет набор данных в виде XML,

// отображает результаты в текстовом окне

//2. Добавляет таблицу данных в набор данных,

// добавляет два типизированных столбца в таблицу данных,

// добавляет две строки в таблицу данных,

// сохраняет набор данных в виде XML,

// отображает результаты в текстовом окне

//-------------------------------------------------------

private void  button1_Click(object sender, System.EventArgs e) {

161
{"b":"947732","o":1}