Прочитать на английском

Поделиться через


DataViewRowState Перечисление

Определение

Описывает версию данных в объекте DataRow.

Это перечисление поддерживает побитовую комбинацию значений его членов.

[System.Flags]
public enum DataViewRowState
Наследование
DataViewRowState
Атрибуты

Поля

Added 4

Новая строка.

CurrentRows 22

Текущие строки, включая неизмененные, новые и измененные строки. По умолчанию DataViewRowState имеет значение CurrentRows.

Deleted 8

Удаленная строка.

ModifiedCurrent 16

Текущая версия исходных данных, которые были изменены (см. ModifiedOriginal).

ModifiedOriginal 32

Версия исходной строки измененных данных. (Хотя данные были изменены, они доступны как ModifiedCurrent).

None 0

Нет.

OriginalRows 42

Исходные строки, включая неизмененные и удаленные.

Unchanged 2

Неизменившаяся строка.

Примеры

В следующем примере DataTable создается один столбец. Данные изменяются, а RowStateFilterDataView для параметра задано отображение разных наборов строк в зависимости DataViewRowStateот .

static private void DemonstrateRowState()
{
    // Create a DataTable with one column.
    DataTable dataTable = new DataTable("dataTable");
    DataColumn dataColumn = new DataColumn("dataColumn");
    dataTable.Columns.Add(dataColumn);

    // Add ten rows.
    DataRow dataRow;
    for (int i = 0; i < 10; i++)
    {
        dataRow = dataTable.NewRow();
        dataRow["dataColumn"] = "item " + i;
        dataTable.Rows.Add(dataRow);
    }
    dataTable.AcceptChanges();

    // Create a DataView with the table.
    DataView dataView = new DataView(dataTable);

    // Change one row's value:
    dataTable.Rows[1]["dataColumn"] = "Hello";

    // Add one row:
    dataRow = dataTable.NewRow();
    dataRow["dataColumn"] = "World";
    dataTable.Rows.Add(dataRow);

    // Set the RowStateFilter to display only added and modified rows.
    dataView.RowStateFilter = DataViewRowState.Added
        | DataViewRowState.ModifiedCurrent;

    // Print those rows. Output = "Hello" "World";
    PrintView(dataView, "ModifiedCurrent and Added");

    // Set filter to display on originals of modified rows.
    dataView.RowStateFilter = DataViewRowState.ModifiedOriginal;
    PrintView(dataView, "ModifiedOriginal");

    // Delete three rows.
    dataTable.Rows[1].Delete();
    dataTable.Rows[2].Delete();
    dataTable.Rows[3].Delete();

    // Set the RowStateFilter to display only Added and modified rows.
    dataView.RowStateFilter = DataViewRowState.Deleted;
    PrintView(dataView, "Deleted");

    //Set filter to display only current.
    dataView.RowStateFilter = DataViewRowState.CurrentRows;
    PrintView(dataView, "Current");

    // Set filter to display only unchanged rows.
    dataView.RowStateFilter = DataViewRowState.Unchanged;
    PrintView(dataView, "Unchanged");

    // Set filter to display only original rows.
    dataView.RowStateFilter = DataViewRowState.OriginalRows;
    PrintView(dataView, "OriginalRows");
}

static private void PrintView(DataView dataView, string label)
{
    Console.WriteLine("\n" + label);
    for (int i = 0; i < dataView.Count; i++)
    {
        Console.WriteLine(dataView[i]["dataColumn"]);
    }
}

Комментарии

Значения DataViewRowState используются либо для получения определенной версии данных из DataRow, либо для определения существующих версий.

RowStateFilter Задайте свойство объекта , DataView чтобы указать, какую версию или версии данных требуется просмотреть.

Для получения нескольких версий можно использовать логический оператор Or со значениями.

Использует DataTable в методе Select .DataViewRowState

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

См. также раздел