DataRow.Delete Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Apaga o DataRow.
public:
void Delete();
public void Delete();
member this.Delete : unit -> unit
Public Sub Delete ()
Exceções
Já DataRow foi apagado.
Exemplos
O exemplo seguinte cria um simples DataTable com duas colunas e dez linhas. Depois de eliminar vários DataRow itens com o Delete método, uma das linhas é desapagada invocando RejectChanges.
private void DemonstrateDeleteRow()
{
// Create a simple DataTable with two columns and ten rows.
DataTable table = new DataTable("table");
DataColumn idColumn = new DataColumn("id",
Type.GetType("System.Int32"));
idColumn.AutoIncrement=true;
DataColumn itemColumn = new DataColumn("item",
Type.GetType("System.String"));
table.Columns.Add(idColumn);
table.Columns.Add(itemColumn);
// Add ten rows.
DataRow newRow;
for(int i = 0; i <10; i++)
{
newRow = table.NewRow();
newRow["item"] = "Item " + i;
table.Rows.Add(newRow);
}
table.AcceptChanges();
DataRowCollection itemColumns = table.Rows;
itemColumns[0].Delete();
itemColumns[2].Delete();
itemColumns[3].Delete();
itemColumns[5].Delete();
Console.WriteLine(itemColumns[3].RowState.ToString());
// Reject changes on one deletion.
itemColumns[3].RejectChanges();
// Change the value of the column so it stands out.
itemColumns[3]["item"] = "Deleted, Undeleted, Edited";
// Accept changes on others.
table.AcceptChanges();
// Print the remaining row values.
foreach(DataRow row in table.Rows)
{
Console.WriteLine(row[0] + "\table" + row[1]);
}
}
Private Sub DemonstrateDeleteRow()
' Create a simple DataTable with two columns and ten rows.
Dim table As New DataTable("table")
Dim idColumn As New DataColumn("id", Type.GetType("System.Int32"))
idColumn.AutoIncrement = True
Dim itemColumn As New DataColumn("item", Type.GetType("System.String"))
table.Columns.Add(idColumn)
table.Columns.Add(itemColumn)
' Add ten rows.
Dim newRow As DataRow
Dim i As Integer
For i = 0 To 9
newRow = table.NewRow()
newRow("item") = "Item " & i.ToString()
table.Rows.Add(newRow)
Next i
table.AcceptChanges()
Dim itemColumns As DataRowCollection = table.Rows
itemColumns(0).Delete()
itemColumns(2).Delete()
itemColumns(3).Delete()
itemColumns(5).Delete()
Console.WriteLine(itemColumns(3).RowState.ToString())
' Reject changes on one deletion.
itemColumns(3).RejectChanges()
' Change the value of the column so it stands out.
itemColumns(3)("item") = "Deleted, Undeleted, Edited"
' Accept changes on others.
table.AcceptChanges()
' Print the remaining row values.
Dim row As DataRow
For Each row In table.Rows
Console.WriteLine(row(0).ToString() & ControlChars.Tab _
& row(1).ToString())
Next row
End Sub
Observações
Se o RowState da linha for Added, o RowState torna-se Detached e a linha é removida da tabela imediatamente.
A situação RowState torna-se Deleted depois de usar o Delete método num .DataRow Permanece Deleted até chamares AcceptChanges. Neste momento, o DataRow é removido da tabela.
Delete não deve ser chamado num ciclo foreach enquanto se itera através de um DataRowCollection objeto. Delete modifica o estado da coleção.
Uma linha eliminada pode ser desapagada invocando RejectChanges.
Note
O BeginEdit método suspende RowChanging temporariamente os eventos, mas a operação de eliminação não.