DataRow.Delete Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
DataRowУдаляет объект .
public:
void Delete();
public void Delete();
member this.Delete : unit -> unit
Public Sub Delete ()
Исключения
Он DataRow уже удален.
Примеры
В следующем примере создается простой DataTable с двумя столбцами и десятью строками. После удаления нескольких DataRow элементов с Delete помощью метода одна из строк отменяется путем 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
Комментарии
RowState Если строка указанаAdded, RowState она становится Detached и строка удаляется из таблицы немедленно.
После RowState использования Delete метода в существующем DataRowобъекте.Deleted Он остается до тех пор Deleted , пока не вызовете AcceptChanges. В настоящее время удаляется DataRow из таблицы.
Delete не следует вызывать в цикле foreach во время итерации через DataRowCollection объект. Delete изменяет состояние коллекции.
Удаленная строка может быть удалена путем RejectChangesвызова.
Замечание
Метод BeginEdit временно приостанавливает RowChanging события, но операция удаления не выполняется.