/// <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) { row.RowID = List.Count; List.Add(row); } else { List.Insert(pos, row); row.RowID = pos; for (int i = pos + 1; i < List.Count; i++) { ((DataRow)List [i]).RowID = i; } } row.HasParentCollection = true; row.AttachRow(); row.Table.ChangedDataRow(row, DataRowAction.Add); }
internal void AddInternal(DataRow row, DataRowAction action) { row.Table.ChangingDataRow(row, action); row.HasParentCollection = true; List.Add(row); // Set the row id. row.RowID = List.Count - 1; row.AttachRow(); #if NET_2_0 if ((action & (DataRowAction.ChangeCurrentAndOriginal | DataRowAction.ChangeOriginal)) != 0) { row.Original = row.Current; } #endif 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."); if ((table.DataSet == null || table.DataSet.EnforceConstraints) && !table._duringDataLoad) // we have to check that the new row doesn't colide with existing row ValidateDataRowInternal(row); row.Table.ChangingDataRow (row, DataRowAction.Add); if (pos >= List.Count) { row.RowID = List.Count; List.Add (row); } else { List.Insert (pos, row); row.RowID = pos; for (int i = pos+1; i < List.Count; i++) { ((DataRow)List [i]).RowID = i; } } row.HasParentCollection = true; row.AttachRow (); row.Table.ChangedDataRow (row, DataRowAction.Add); }
internal void AddInternal(DataRow row) { row.Table.ChangingDataRow (row, DataRowAction.Add); row.HasParentCollection = true; List.Add (row); // Set the row id. row.RowID = List.Count - 1; row.AttachRow (); row.Table.ChangedDataRow (row, DataRowAction.Add); }