Практическое руководство. Получение измененных строк

Каждая строка в таблице данных имеет свойство RowState, которое отслеживает текущее состояние этой строки, используя значения из перечисления DataRowState.Вы можете вернуть измененные строки из набора данных или таблицы данных, вызвав метод GetChanges объекта DataSet или DataTable.Можно убедиться, что изменения существуют, до вызова GetChanges, вызвав метод HasChanges набора данных.Дополнительные сведения по HasChanges см. в разделе Практическое руководство. Проверка измененных строк.

ПримечаниеПримечание

После фиксации изменений в наборе данных или таблице данных (путем вызова метода AcceptChanges), метод GetChanges не вернет данные.Если приложению нужно обработать измененные строки, необходимо сделать это до вызова метода AcceptChanges.

Вызов метода GetChanges набора данных или таблицы данных возвращает новый набор данных или таблицу данных, содержащие только записи, которые были изменены.Если требуется получить только определенные записи — например, только новые записи или только измененные записи — можно передать значение из перечисленияDataRowState в качестве параметра методу GetChanges.

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

Чтобы получить все измененные записи из набора данных

  • Вызовите метод GetChanges набора данных.

    В следующем примере создается новый набор данных с именем changedRecords и заполняется всеми измененными записями из другого набора данных с именем dataSet1.

    Dim changedRecords As DataSet = DataSet1.GetChanges()
    
    DataSet changedRecords = dataSet1.GetChanges();
    

Чтобы получить все измененные записи из таблицы данных

  • Вызовите метод GetChanges объекта DataTable.

    В следующем примере создается новая таблица данных с именем changedRecordsTable и заполняется всеми измененными записями из другой таблицы данных с именем dataTable1.

    Dim changedRecordsTable As DataTable = dataTable1.GetChanges()
    
    DataTable changedRecordsTable = dataTable1.GetChanges();
    

Для получения всех записей, имеющих определенное состояние строки

  • Вызовите метод GetChanges набора данных или таблицы данных и передайте значение перечисления DataRowState в качестве аргумента.

    В следующем примере показано создание нового набора данных с именем addedRecords и заполнение его только записями, которые были добавлены в набор данных dataSet1.

    Dim addedRecords As DataSet = DataSet1.GetChanges(DataRowState.Added)
    
    DataSet addedRecords = dataSet1.GetChanges(DataRowState.Added);
    
  • В следующем примере показано, как отобрать все записи, недавно добавленные в таблицу Customers:

    Private Function GetNewRecords() As NorthwindDataSet.CustomersDataTable
    
        Return CType(NorthwindDataSet1.Customers.GetChanges(Data.DataRowState.Added),
            NorthwindDataSet.CustomersDataTable)
    End Function
    
    private NorthwindDataSet.CustomersDataTable GetNewRecords()
    {
        return (NorthwindDataSet.CustomersDataTable)
            northwindDataSet1.Customers.GetChanges(DataRowState.Added);
    }
    

См. также

Задачи

Практическое руководство. Проверка измененных строк

Практическое руководство. Получение определенных версий объекта DataRow

Основные понятия

Привязка элементов управления Windows Forms к данным в Visual Studio

Подготовка приложения к получению данных

Выборка данных в приложение

Привязка элементов управления к данным в Visual Studio

Редактирование данных в приложении

Проверка данных

Сохранение данных

Другие ресурсы

Подключение к данным в Visual Studio