Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_1-44.docx
Скачиваний:
19
Добавлен:
21.04.2019
Размер:
1.07 Mб
Скачать

36. Ado.Net. Класс DataRow. Основные свойства и методы.

Отдельная строка представляется DataRow

Таблица содержит коллекцию Rows типа DataRowCollection.

Каждая строка обладает свойством Table, в котором хранится ссылка на таблицу владеющую строкой.

NewRow() - метод создаёт пустую строку согласно структуре столбцов таблицы для добавления строки необходимо заполнить её данными и воспользоваться методом DataTable.Rows.Add() для добавления её в таблицу.

// Создали пустую строку с требуемой структурой

DataRow r=Artists.NewRow();

// Заполняем её содержимым

r[“name”] = “DepecheMode”;

// Добавляем таблицу

Artists.Rows.Add(r);

// Вариант покороче, в котором совмещены сразу 3 действия

Artists.Rows.Add(newobject[2]{null, “Nirvana”});

Если требуется получить из таблицы строку для редактирования то используется поиск по номеру строки с помощью метода Find() коллекции Rows, либо просто обращение по номеру.

// Знаем номер строки, в данном случае – получаем вторую

DataRow row = Users.Rows[1];

// Можно найти строку по значению первичного ключа

DataRow row_2=Users.Rows.Find(1);

Любая строка имеет несколько вариантов индексаторов для доступа к своим полям. В качестве индекса может выступать имя столбца, номер столбца или объект DataColumn представляющий столбец

// меняем содержимое определённых полей строки

row[“user_name”]=”Alex”;

row[“user_address”]=”111-4”;

Ещё 1 метод редактирования строки – использование методов BeginEdit() и EndEdit()

row.BeginEdit();

row[“user_name”] = “Alex”;

row[“user_address”] = “Mars”;

row.EndEdit();

Данные методы позволяют буферизировать изменения строки. При вызове метода EndEdit Изменения сохраняются в строке. Метод CanсelEdit отменять изменения.

Использование свойства ItemArray – позволяет просматривать и редактировать содержимое строки.

Для удаления строки используется метод Delete объекта DataRow после вызова данного метода строка помечается как удалённая а из БД она будет удалена после загрузки содержимого объекта DataSet в БД.

Можно удалить строку из коллекции Rows таблицы используя методы Remove() и RemoveAt().

  • Remove() в качестве параметра принимает объект DataRow

  • RemoveAt() в качестве параметра принимает порядковый номер строки

Если строка удаляется подобным образом, то при синхронизации изменений с БД данная строка из БД удалятся, не будет.

Не эффективно заполнять БД из набора данных целиком. Эффективно осуществлять отслеживание изменений, и вносить в БД, только корректирующие правки.

Для поддержки корректирующих изменений каждая строка имеет состояние и версию. Состояние строки хранится в свойстве RowState и принимает следующие значения из перечисления DataRowState:

  • Unchanged – строка не менялась (совпадает со строкой в базе)

  • Detached – строка не относится к объекту DataTable;

  • Added - строка добавлена в объект DataTable, но не существует в БДж

  • Modified – строка была изменена по сравнению со строкой из базы;

  • Deleted – строка ожидает удаления из базы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]