public virtual void CopyTo(DbParameter destination) { if (destination == null) { throw ExceptionHelper.ArgumentNull("destination"); } DbParameterBase t = (DbParameterBase)destination; t._parameterName = _parameterName; t._size = _size; t._offset = _offset; t._isNullable = _isNullable; t._sourceColumn = _sourceColumn; t._direction = _direction; if (_value is ICloneable) { t._value = ((ICloneable)_value).Clone(); } else { t._value = this._value; } }
private void RemoveIndex(int index) { DbParameterBase oldItem = (DbParameterBase)_list [index]; oldItem.Parent = null; _list.RemoveAt(index); }
protected virtual void Validate(int index, object value) { ValidateType(value); DbParameterBase parameter = (DbParameterBase)value; if (parameter.Parent != null) { if (parameter.Parent.Equals(this)) { if (IndexOf(parameter) != index) { throw ExceptionHelper.CollectionAlreadyContains(ItemType, "ParameterName", parameter.ParameterName, this); } } else { // FIXME : The OleDbParameter with ParameterName 'MyParam2' is already contained by another OleDbParameterCollection. throw new ArgumentException(""); } } if (parameter.ParameterName == null || parameter.ParameterName == String.Empty) { int newIndex = 1; string parameterName; do { parameterName = "Parameter" + newIndex; newIndex++; }while(IndexOf(parameterName) != -1); parameter.ParameterName = parameterName; } }
protected DbParameterBase (DbParameterBase source) { if (source == null) throw ExceptionHelper.ArgumentNull ("source"); source.CopyTo (this); ICloneable cloneable = source._value as ICloneable; if (cloneable != null) _value = cloneable.Clone (); }
private void Replace(int index, DbParameter value) { Validate(index, value); DbParameterBase oldItem = (DbParameterBase)this [index]; oldItem.Parent = null; ((DbParameterBase)value).Parent = this; _list [index] = value; }
protected DbParameterBase(DbParameterBase source) { if (source == null) { throw ExceptionHelper.ArgumentNull("source"); } source.CopyTo(this); ICloneable cloneable = source._value as ICloneable; if (cloneable != null) { _value = cloneable.Clone(); } }