/// <summary> /// Adds the specified DataRow to the DataRowCollection object. /// </summary> public void Add(DataRow row) { //TODO: validation 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.BeginEdit(); row.Validate(); AddInternal(row); }
/// <summary> /// Creates a row using specified values and adds it to the DataRowCollection. /// </summary> public DataRow Add(params object[] values) { if (values == null) { throw new NullReferenceException(); } DataRow row = table.NewNotInitializedRow(); int newRecord = table.CreateRecord(values); row.ImportRecord(newRecord); row.Validate(); AddInternal(row); return(row); }
/// <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); }
/// <summary> /// Adds the specified DataRow to the DataRowCollection object. /// </summary> public void Add (DataRow row) { //TODO: validation 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.BeginEdit (); row.Validate (); AddInternal (row); }
/// <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); }