Compartir a través de


Modificar vistas de datos

Puede usar DataView para agregar, eliminar o modificar filas de datos en la tabla subyacente. La capacidad de usar DataView para modificar datos en la tabla subyacente se controla estableciendo una de las tres propiedades booleanas de DataView. Dichas propiedades son AllowNew, AllowEdit y AllowDelete. Se establecen true por defecto.

Si AllowNew es true, puede usar el AddNew método de DataView para crear un nuevo DataRowView. Tenga en cuenta que una nueva fila no se agrega realmente al DataTable subyacente hasta que se llama al método EndEdit de DataRowView. Si se invoca el método CancelEdit de DataRowView, se descarta la nueva fila. Tenga en cuenta también que solo puede editar una DataRowView a la vez. Si llama al método AddNew o BeginEdit de DataRowView mientras existe una fila pendiente, EndEdit se llama implícitamente en esa fila pendiente. Cuando se llama a EndEdit, los cambios se aplican al elemento subyacente DataTable y se pueden confirmar o rechazar posteriormente mediante los métodos AcceptChanges o RejectChanges de DataTable, DataSet o al objeto DataRow. Si AllowNew es false, se produce una excepción si se llama al AddNew método de DataRowView.

Si AllowEdit es true, puede modificar el contenido de a DataRow través de DataRowView. Puede confirmar los cambios en la fila subyacente mediante DataRowView.EndEdit o rechazar los cambios mediante DataRowView.CancelEdit. Tenga en cuenta que solo se puede editar una fila a la vez. Si llama a los métodos AddNew o BeginEdit de DataRowView mientras existe una fila pendiente, se llama implícitamente a EndEdit en la fila pendiente. Cuando se llama a EndEdit, los cambios propuestos se colocan en la versión de fila de DataRow subyacente y se pueden confirmar o rechazar posteriormente mediante los métodos AcceptChanges o RejectChanges de DataTable, DataSet o en el objeto DataRow. Si AllowEdit es false, se produce una excepción si intenta modificar un valor en DataView.

Cuando se edita un DataRowView existente, los eventos del subyacente DataTable seguirán generándose con los cambios propuestos. Tenga en cuenta que si llama a EndEdit o CancelEdit en el DataRow subyacente, los cambios pendientes se aplicarán o cancelarán independientemente de si se llama a EndEdit o CancelEdit en el DataRowView.

Si AllowDelete es true, puede eliminar filas de DataView mediante el Delete método del DataView objeto o DataRowView y las filas se eliminan de la DataTable subyacente. Más adelante puede confirmar o rechazar las eliminaciones mediante AcceptChanges o RejectChanges respectivamente. Si AllowDelete es false, se produce una excepción si se llama al Delete método de DataView o DataRowView.

En el ejemplo de código siguiente se deshabilita el uso de DataView para eliminar filas y se agrega una nueva fila a la tabla subyacente mediante DataView.

Dim custTable As DataTable = custDS.Tables("Customers")
Dim custView As DataView = custTable.DefaultView
custView.Sort = "CompanyName"

custView.AllowDelete = False

Dim newDRV As DataRowView = custView.AddNew()
newDRV("CustomerID") = "ABCDE"
newDRV("CompanyName") = "ABC Products"
newDRV.EndEdit()
DataTable custTable = custDS.Tables["Customers"];
DataView custView = custTable.DefaultView;
custView.Sort = "CompanyName";

custView.AllowDelete = false;

DataRowView newDRV = custView.AddNew();
newDRV["CustomerID"] = "ABCDE";
newDRV["CompanyName"] = "ABC Products";
newDRV.EndEdit();

Consulte también