Differece between DataRow.Delete and DataTable.Rows.Remove
שימו לב לאיך המתודה Remove ממומשת:
public void Remove(DataRow row)
{
if (((row == null) || (row.Table != this.table)) || (-1L == row.rowID))
{
throw ExceptionBuilder.RowOutOfRange();
}
if ((row.RowState != DataRowState.Deleted) && (row.RowState != DataRowState.Detached))
{
row.Delete();
}
if (row.RowState != DataRowState.Detached)
{
row.AcceptChanges();
}
}
המתודה קוראת ל - row.Delete ולאחר מכן מפעילה את AcceptChanges מה שאומר שהשורה תמחק לצמיתות מהטבלה.
כדי למנוע את החוכמה של המפתח שכתב את המתודה הנ"ל, צריך להפעיל את מתודת Delete במקום את מתודת Remove