Este tema aún no ha recibido ninguna valoración - Valorar este tema

DataRowView (Clase)

Representa un vista personalizada de DataRow.

Espacio de nombres: System.Data
Ensamblado: System.Data (en system.data.dll)

public class DataRowView : ICustomTypeDescriptor, IEditableObject, IDataErrorInfo, 
	INotifyPropertyChanged
public class DataRowView implements ICustomTypeDescriptor, IEditableObject, 
	IDataErrorInfo, INotifyPropertyChanged
public class DataRowView implements ICustomTypeDescriptor, IEditableObject, 
	IDataErrorInfo, INotifyPropertyChanged

Cuando se muestran datos, como en un control DataGrid, sólo se puede mostrar una versión de cada fila. La fila que se muestra es un DataRowView.

DataRowView sólo puede tener uno de los cuatro estados de versión diferentes: Default, Original, Current y Proposed.

Tras invocar BeginEdit en un DataRow, cualquier valor que se haya editado se convertirá en el valor Proposed. Hasta que se invoque a CancelEdit o a EndEdit, la fila tendrá una versión Original y otra Proposed. Si se invoca a CancelEdit, se descartará la versión propuesta y el valor volverá a ser Original. Si se invoca a EndEdit, el objeto DataRowView dejará de tener una versión Proposed. En su lugar, el valor propuesto se convertirá en el valor actual. Los valores predeterminados sólo se encuentran disponibles en las filas que tienen columnas con valores predeterminados definidos.

En el ejemplo siguiente se utiliza la propiedad RowVersion para determinar el estado de una fila en DataRowView.

private static void DemonstrateRowVersion()
{
    // Create a DataTable with one column.
    DataTable table = new DataTable("Table");
    DataColumn column = new DataColumn("Column");
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i < 10; i++)
    {
        row = table.NewRow();
        row["Column"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    // Create a DataView with the table.
    DataView view = new DataView(table);

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

    // Add one row:
    row = table.NewRow();
    row["Column"] = "World";
    table.Rows.Add(row);

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

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

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

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

    // Set the RowStateFilter to display only deleted rows.
    view.RowStateFilter = DataViewRowState.Deleted;
    PrintView(view, "Deleted");

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

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

    // Set filter to display only original rows.
    // Current values of unmodified rows are also returned.
    view.RowStateFilter = DataViewRowState.OriginalRows;
    PrintView(view, "OriginalRows");
}

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

System.Object
  System.Data.DataRowView

Este tipo es seguro para operaciones de lectura multiproceso. Debe sincronizar cualquier operación de escritura.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar