Compartir por


DataRowView Clase

Definición

Representa una vista personalizada de .DataRow

public ref class DataRowView : System::ComponentModel::ICustomTypeDescriptor, System::ComponentModel::IDataErrorInfo, System::ComponentModel::IEditableObject, System::ComponentModel::INotifyPropertyChanged
public ref class DataRowView : System::ComponentModel::ICustomTypeDescriptor, System::ComponentModel::IDataErrorInfo, System::ComponentModel::IEditableObject
public class DataRowView : System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.IDataErrorInfo, System.ComponentModel.IEditableObject, System.ComponentModel.INotifyPropertyChanged
public class DataRowView : System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.IDataErrorInfo, System.ComponentModel.IEditableObject
type DataRowView = class
    interface ICustomTypeDescriptor
    interface IDataErrorInfo
    interface IEditableObject
    interface INotifyPropertyChanged
type DataRowView = class
    interface ICustomTypeDescriptor
    interface IEditableObject
    interface IDataErrorInfo
type DataRowView = class
    interface ICustomTypeDescriptor
    interface IEditableObject
    interface IDataErrorInfo
    interface INotifyPropertyChanged
Public Class DataRowView
Implements ICustomTypeDescriptor, IDataErrorInfo, IEditableObject, INotifyPropertyChanged
Public Class DataRowView
Implements ICustomTypeDescriptor, IDataErrorInfo, IEditableObject
Herencia
DataRowView
Implementaciones

Ejemplos

En el ejemplo siguiente se usa la RowVersion propiedad para determinar el estado de una fila en .DataRowView (Consulte RowFilter otro ejemplo con 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);
    }
}
Private Sub DemonstrateRowVersion()
    Dim i As Integer
    ' Create a DataTable with one column.
    Dim table As New DataTable("Table")
    Dim column As New DataColumn("Column")
    table.Columns.Add(column)

    ' Add ten rows.
    Dim row As DataRow
    For i = 0 To 9
        row = table.NewRow()
        row("Column") = "item " + i.ToString()
        table.Rows.Add(row)
    Next i
    table.AcceptChanges()

    ' Create a DataView with the table.
    Dim view As 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 Or 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")
End Sub

Private Sub PrintView(ByVal view As DataView, ByVal label As String)
    Console.WriteLine(ControlChars.Cr + label)
    Dim i As Integer
    For i = 0 To view.Count - 1
        Console.WriteLine(view(i)("Column"))
        Console.WriteLine("DataRowView.RowVersion: {0}", _
            view(i).RowVersion)
    Next i
End Sub

Comentarios

Cada vez que se muestran los datos, como en un DataGrid control , solo se puede mostrar una versión de cada fila. La fila mostrada es .DataRowView

Un DataRowView puede tener uno de los cuatro estados de versión diferentes: Default, Original, Currenty Proposed.

Después de invocar BeginEdit en , DataRowcualquier valor editado se convierte en el Proposed valor . Hasta que se invoque o CancelEditEndEdit , la fila tiene una Original versión y .Proposed Si CancelEdit se invoca, se descarta la versión propuesta y el valor vuelve a Original. Si EndEdit se invoca, ya DataRowView no tiene una Proposed versión; en su lugar, el valor propuesto se convierte en el valor actual. Los valores predeterminados solo están disponibles en las filas que tienen columnas con valores predeterminados definidos.

Propiedades

Nombre Description
DataView

Obtiene el al DataView que pertenece esta fila.

IsEdit

Indica si la fila está en modo de edición.

IsNew

Indica si es DataRowView nuevo.

Item[Int32]

Obtiene o establece un valor en una columna especificada.

Item[String]

Obtiene o establece un valor en una columna especificada.

Row

Obtiene el DataRow objeto que se está viendo.

RowVersion

Obtiene la descripción de la versión actual de .DataRow

Métodos

Nombre Description
BeginEdit()

Inicia un procedimiento de edición.

CancelEdit()

Cancela un procedimiento de edición.

CreateChildView(DataRelation, Boolean)

Devuelve un DataView para el elemento secundario DataTable con el elemento primario y especificados DataRelation .

CreateChildView(DataRelation)

Devuelve un DataView para el elemento secundario DataTable con el elemento secundario DataRelationespecificado.

CreateChildView(String, Boolean)

Devuelve un DataView para el elemento secundario DataTable con el nombre y el elemento primario especificados DataRelation .

CreateChildView(String)

Devuelve un DataView para el elemento secundario DataTable con el nombre secundario DataRelation especificado.

Delete()

Elimina una fila.

EndEdit()

Confirma los cambios en el subyacente DataRow y finaliza la sesión de edición que se inició con BeginEdit(). Use CancelEdit() para descartar los cambios realizados en .DataRow

Equals(Object)

Obtiene un valor que indica si el actual DataRowView es idéntico al objeto especificado.

GetHashCode()

Devuelve el código hash del DataRow objeto .

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

Nombre Description
PropertyChanged

Evento que se genera cuando se cambia una DataRowView propiedad.

Implementaciones de interfaz explícitas

Nombre Description
ICustomTypeDescriptor.GetAttributes()

Devuelve una colección de atributos personalizados para esta instancia de un componente.

ICustomTypeDescriptor.GetClassName()

Devuelve el nombre de clase de esta instancia de un componente.

ICustomTypeDescriptor.GetComponentName()

Devuelve el nombre de esta instancia de un componente.

ICustomTypeDescriptor.GetConverter()

Devuelve un convertidor de tipos para esta instancia de un componente.

ICustomTypeDescriptor.GetDefaultEvent()

Devuelve el evento predeterminado para esta instancia de un componente.

ICustomTypeDescriptor.GetDefaultProperty()

Devuelve la propiedad predeterminada para esta instancia de un componente.

ICustomTypeDescriptor.GetEditor(Type)

Devuelve un editor del tipo especificado para esta instancia de un componente.

ICustomTypeDescriptor.GetEvents()

Devuelve los eventos de esta instancia de un componente.

ICustomTypeDescriptor.GetEvents(Attribute[])

Devuelve los eventos de esta instancia de un componente con atributos especificados.

ICustomTypeDescriptor.GetProperties()

Devuelve las propiedades de esta instancia de un componente.

ICustomTypeDescriptor.GetProperties(Attribute[])

Devuelve las propiedades de esta instancia de un componente con atributos especificados.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Devuelve un objeto que contiene la propiedad descrita por el descriptor de propiedad especificado.

IDataErrorInfo.Error

Obtiene un mensaje que describe los errores de validación del objeto.

IDataErrorInfo.Item[String]

Obtiene el mensaje de error de la propiedad con el nombre especificado.

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para las operaciones de lectura multiproceso. Debe sincronizar las operaciones de escritura.

Consulte también