Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
		/// <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);
		}
Exemplo n.º 5
0
		/// <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);
		}