internal void AddInternal(DataRow row, DataRowAction action) { row.Table.ChangingDataRow(row, action); List.Add(row); row.AttachAt(List.Count - 1, action); row.Table.ChangedDataRow(row, action); if (row._rowChanged) { row._rowChanged = false; } }
/// <summary> /// Inserts a new row into the collection at the specified location. /// </summary> public void InsertAt(DataRow row, int pos) { if (pos < 0) { throw new IndexOutOfRangeException("The row insert position " + pos + " is invalid."); } if (row == null) { throw new ArgumentNullException("row", "'row' argument cannot be null."); } if (row.Table != this.table) { throw new ArgumentException("This row already belongs to another table."); } // If row id is not -1, we know that it is in the collection. if (row.RowID != -1) { throw new ArgumentException("This row already belongs to this table."); } row.Validate(); row.Table.ChangingDataRow(row, DataRowAction.Add); if (pos >= List.Count) { pos = List.Count; List.Add(row); } else { List.Insert(pos, row); for (int i = pos + 1; i < List.Count; i++) { ((DataRow)List [i]).RowID = i; } } row.AttachAt(pos, DataRowAction.Add); row.Table.ChangedDataRow(row, DataRowAction.Add); }
/// <summary> /// Inserts a new row into the collection at the specified location. /// </summary> public void InsertAt (DataRow row, int pos) { if (pos < 0) throw new IndexOutOfRangeException ("The row insert position " + pos + " is invalid."); if (row == null) throw new ArgumentNullException ("row", "'row' argument cannot be null."); if (row.Table != this.table) throw new ArgumentException ("This row already belongs to another table."); // If row id is not -1, we know that it is in the collection. if (row.RowID != -1) throw new ArgumentException ("This row already belongs to this table."); row.Validate (); row.Table.ChangingDataRow (row, DataRowAction.Add); if (pos >= List.Count) { pos = List.Count; List.Add (row); } else { List.Insert (pos, row); for (int i = pos+1; i < List.Count; i++) ((DataRow) List [i]).RowID = i; } row.AttachAt (pos, DataRowAction.Add); row.Table.ChangedDataRow (row, DataRowAction.Add); }
internal void AddInternal (DataRow row, DataRowAction action) { row.Table.ChangingDataRow (row, action); List.Add (row); row.AttachAt (List.Count - 1, action); row.Table.ChangedDataRow (row, action); if (row._rowChanged) row._rowChanged = false; }