internal void AddAt(int index, DataColumn column) { if (column != null && column.ColumnMapping == MappingType.SimpleContent) { if (_table.XmlText != null && _table.XmlText != column) { throw ExceptionBuilder.CannotAddColumn3(); } if (_table.ElementColumnCount > 0) { throw ExceptionBuilder.CannotAddColumn4(column.ColumnName); } OnCollectionChanging(new CollectionChangeEventArgs(CollectionChangeAction.Add, column)); BaseAdd(column); if (index != -1) { ArrayAdd(index, column); } else { ArrayAdd(column); } _table.XmlText = column; } else { OnCollectionChanging(new CollectionChangeEventArgs(CollectionChangeAction.Add, column)); BaseAdd(column); if (index != -1) { ArrayAdd(index, column); } else { ArrayAdd(column); } // if the column is an element increase the internal dataTable counter if (column.ColumnMapping == MappingType.Element) { _table.ElementColumnCount++; } } if (!_table.fInitInProgress && column != null && column.Computed) { column.CopyExpressionFrom(column); } OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Add, column)); }
internal void AddAt(int index, DataColumn column) { if ((column != null) && (column.ColumnMapping == MappingType.SimpleContent)) { if ((this.table.XmlText != null) && (this.table.XmlText != column)) { throw ExceptionBuilder.CannotAddColumn3(); } if (this.table.ElementColumnCount > 0) { throw ExceptionBuilder.CannotAddColumn4(column.ColumnName); } this.OnCollectionChanging(new CollectionChangeEventArgs(CollectionChangeAction.Add, column)); this.BaseAdd(column); if (index != -1) { this.ArrayAdd(index, column); } else { this.ArrayAdd(column); } this.table.XmlText = column; } else { this.OnCollectionChanging(new CollectionChangeEventArgs(CollectionChangeAction.Add, column)); this.BaseAdd(column); if (index != -1) { this.ArrayAdd(index, column); } else { this.ArrayAdd(column); } if (column.ColumnMapping == MappingType.Element) { this.table.ElementColumnCount++; } } if ((!this.table.fInitInProgress && (column != null)) && column.Computed) { column.Expression = column.Expression; } this.OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Add, column)); }