Лекция: DataSet важные особенности. Изменение данных в DataRow. Просмотр данных в DataTable. Параллелизм

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

Свойства объекта DataSet

Свойство Описание
  CaseSensitive   Указывает, чувствительно ли к регистру сравнение строк в объектах DataTable
DataSetName   Получает или устанавливает имя текущего объекта DataSet
DefaultView Указывает способ представления данных в объекте DataSet. Это используется при поиске данных, при фильтрации и т.д.
EnforceConstraints Указывает, соблюдаются ли ограничения существующей базы данных при обновлении

 

В табл. 10.3 перечислены методы набора данных DataSet.

Методы Описание
AcceptChanges Подтверждает все изменения в наборе данных DataSet
Clear Чистит все строки во всех таблицах набора данных DataSet. Не удаляет фактическое содержание базы данных
Clone Дублирует структуру набора данных DataSet, включая их таблицы, отношения и ограничения
Copy Копирует структуру и данные набора
GetChanges Возвращает копию набора данных DataSet, которая содержит все изменения данных
GetChildRelations Получает коллекцию дочерних отношений для указанной таблицы

 

Набор данных DataSet обладает рядом особенностей, которых не было прежде, например, способностью чтения и записи данных XML

Изменение данных в DataRow

Объект DataRow представляет строку данных в таблице, можно непосредственно редактировать содержимое в каждой строке данных.

особенностb в DataRaw и DataTable:

· свойство RowState (Состояние строки), указывающее состояние текущей строки. Возможные значения: Detached (Отсоединенное), Unchanged (Неизменяемое), New (Новое), Deleted (Удаленное) и Modified Detached (Измененное Отдаленное). Свойство Detached означает, что строка была создана, но в настоящее время не является частью Rows Collection (Коллекции строк) в DataSet.

· DataTable поддерживает три версии каждой строки: первоначальную, текущую и предложенную. Первоначальная версия (DataRowVersion.Original) — это строка, впервые добавленная в DataTable. Текущая версия DataRowVersion.Current — это строка после различных изменений. Предложенная версия

Объект OataRow имеет два метода:

1) Delete полностью уничтожает строку и данные, которые она содержит.

2) Remove, просто удаляет строку из таблицы данных и к ней нельзя программно обратиться.

Наконец, RejectChanges отменяет все изменения в строке после последнего вызова AcceptChanges.

Например, следующий фрагмент программы загружает данные в DataSet, изменяет значение в первой строке и затем отменяет изменения:

dim ds as DataSet=new DataSet()

objCmd.Fill(ds,«tblUsers»)

ds. Tables(«tblUsers»).Rows(0){“FirstName")=«Chris».

ds.Tables(«tblUsers»).Rows(0).RejectChanges

Параллелизм

что произойдет, когда два или более человек одновременно попробуют изменить одни и те же данные в таблице?

Параллелизм — это система, которая управляет сценарием и гарантирует отсутствие проблем при его реализации.

Есть два типа параллелизма:

1) пессимистический Всякий раз, когда пользователь получает доступ или пытается изменить данные, на них устанавливается блокировка, и второй пользователь не может изменить данные и конкурировать с первым.

2) Оптимистический проверяет строки и определяет, были ли изменены первоначальные данные, а затем лишь применяет изменение.

Объект DataSet является ключевым объектом ADO.NET и служит универсальным контейнером данных, независимо от используемого источника данных. Объект DataSet и связанные с ним подчиненные объекты предлагают реляционное представление данных, хотя он также способен загружать и сохранять свои данные в формате XML. Объект DataSet предлагает явную модель хранения данных в оперативной памяти, которая существует в полностью отключенном от источника данных состоянии и может легко передаваться между разными адресными пространствами и компьютерами.

 

Ниже перечислены возможности, которыми обладает объект DataSet.

 

• Хранение данных приложения. Объект DataSet может легко и гибко использоваться для хранения локальных данных приложения. Доступ к данным так же прост, как и доступ к данным в массиве, но объект DataSet предлагает дополнительные функции, например для сортировки и фильтрации,

 

• Использование удаленных данных. Объект DataSet автоматически использует формат XML для маршалинга данных (т.е. их передачи от одного компьютера к другому). Эта возможность существен но упрощает разработку приложений на основе служб, SOAP или удаленного доступа к данным на более низком уровне.

 

• Кэширование данных. Объект DataSet может кэшировать данные во время создания распределенных приложений на основе ASP.NET или других технологий, сокращая объем передаваемых по сети данных.

 

• Устойчивое хранение данных. Объект DataSet предлагает методы сохранения своих данных и информации о схеме данных в стандартном формате XML.

 

• Взаимодействие с пользователями. Объект DataSet эффективно поддерживает взаимодействие с пользователями для разных графических интерфейсов пользователя, комбинируя функции сортировки, фильтрации и прокрутки с возможностями их связывания с разными представлениями данных на основе Windows Forms и Web Forms.[1]

 

ADO.NET была разработана для доступа к данным без реального соединения с БД. При этом все данные размещаются в оперативной памяти. Работа с отсоединенными данными в ADO.NET осуществляется с помощью классов из пространства имен System.Data.

Рис 1

 

[5]

 

Изменения в DataSet не сказываются на БД и наоборот. Класс DataSet включает в себя набор таблиц DataTable и связей между таблицами DataRelation. Класс DataTable включает набор строк DataRow, набор столбцов таблицы DataColumn, и наборы отношений ChildRelations и ParentRelations между столбцами разных таблиц базы данных. Класс DataRow инкапсулирует информацию о строке в таблице и состоянии строки Deleted, Modified, New и Unchanged. Класс Constraint используется для сохранения целостности данных в таблицах. [3]

 

Объекты DataRow и DataColumn являются первичными компонентами DataTable.Используйте объект DataRow и его свойства и методы для извлечения и оценки, вставки, удаления и обновления значений в DataTable.Коллекция DataRowCollection представляет фактические объекты DataRow в DataTable, а коллекция DataColumnCollection содержит объекты DataColumn, которые описывают схему DataTable.Используйте перезагруженное свойство Item для возвращения или задания значения DataColumn.

 

Используйте свойства HasVersion и IsNull для определения состояния какого-либо конкретного значения строки и свойство RowState для определения состояния строки относительно его родительского объекта DataTable.

 

Для создания нового объекта DataRow используйте метод NewRow объекта DataTable.После создания объекта DataRow используйте метод Add для добавления нового объекта DataRow в DataRowCollection.Наконец, вызовите метод AcceptChanges объекта DataTable для подтверждения добавления.Дополнительные сведения о добавлении данных в DataTable см. в разделе Adding Data to a Table.

 

Возможно удаление объекта DataRow из коллекции DataRowCollection посредством вызова метода Remove объекта DataRowCollection либо вызова метода Delete объекта DataRow.Метод Remove удаляет строку из коллекции.Метод Delete, напротив, помечает объект DataRow для удаления.Фактическое удаление происходит при вызове метода AcceptChanges.Вызвав метод Delete, можно программными средствами проверить, какие строки помечены для удаления, прежде чем выполнять их фактическое удаление.Дополнительные сведения см. в разделе Deleting a Row from a Table.[4]

 

Доступ к содержимому DataTable можно получить с помощью коллекций Rows и Columns объекта DataTable. Для возвращения подмножества данных в DataTable в соответствии с условиями поиска, порядком сортировки и состоянием строк можно также использовать метод Select. Кроме того, при поиске конкретной строки по значению первичного ключа можно использовать метод Find класса DataRowCollection.

 

Метод Select объекта DataTable возвращает набор объектов DataRow, соответствующих заданным критериям. Метод Select принимает необязательные аргументы критерия фильтра, выражения сортировки и DataViewRowState. Критерий фильтра определяет возвращаемые строки на основе значений DataColumn, например LastName = 'Smith'. Выражение сортировки следует стандартным соглашениям SQL об упорядочивании столбцов, например по LastName ASC, FirstName ASC. [6]

еще рефераты
Еще работы по информатике