System.Data.DataTable.RemoveRow C# (CSharp) Method

RemoveRow() private method

private RemoveRow ( DataRow row, bool check ) : void
row DataRow
check bool
return void
        internal void RemoveRow(DataRow row, bool check)
        {
            if (row.rowID == -1)
            {
                throw ExceptionBuilder.RowAlreadyRemoved();
            }

            if (check && _dataSet != null)
            {
                for (ParentForeignKeyConstraintEnumerator constraints = new ParentForeignKeyConstraintEnumerator(_dataSet, this); constraints.GetNext();)
                {
                    constraints.GetForeignKeyConstraint().CheckCanRemoveParentRow(row);
                }
            }

            int oldRecord = row._oldRecord;
            int newRecord = row._newRecord;

            DataViewRowState oldRecordStatePre = row.GetRecordState(oldRecord);
            DataViewRowState newRecordStatePre = row.GetRecordState(newRecord);

            row._oldRecord = -1;
            row._newRecord = -1;

            if (oldRecord == newRecord)
            {
                oldRecord = -1;
            }

            RecordStateChanged(oldRecord, oldRecordStatePre, DataViewRowState.None, newRecord, newRecordStatePre, DataViewRowState.None);

            FreeRecord(ref oldRecord);
            FreeRecord(ref newRecord);

            row.rowID = -1;
            Rows.ArrayRemove(row);
        }
DataTable