2 // OracleParameterCollection.cs
4 // Part of the Mono class libraries at
5 // mcs/class/System.Data.OracleClient/System.Data.OracleClient
7 // Assembly: System.Data.OracleClient.dll
8 // Namespace: System.Data.OracleClient
11 // Tim Coleman <tim@timcoleman.com>
13 // Copyright (C) Tim Coleman , 2003
15 // Licensed under the MIT/X11 License.
19 using System.Collections;
20 using System.ComponentModel;
22 using System.Data.OracleClient.Oci;
23 using System.Drawing.Design;
24 using System.Reflection;
26 namespace System.Data.OracleClient {
27 [ListBindable (false)]
28 [Editor ("Microsoft.VSDesigner.Data.Design.DBParametersEditor, " + Consts.AssemblyMicrosoft_VSDesigner, typeof(UITypeEditor))]
29 public sealed class OracleParameterCollection : MarshalByRefObject, IDataParameterCollection, IList, ICollection, IEnumerable
33 OracleCommand command;
40 internal OracleParameterCollection (OracleCommand command)
43 this.command = command;
46 public OracleParameterCollection ()
48 list = new ArrayList ();
51 #endregion // Constructors
56 get { return list.Count; }
59 public bool IsFixedSize {
63 public bool IsReadOnly {
67 public bool IsSynchronized {
71 public OracleParameter this [string parameterName] {
73 foreach (OracleParameter p in list)
74 if (p.ParameterName.Equals (parameterName))
76 throw new IndexOutOfRangeException ("The specified name does not exist: " + parameterName);
79 if (!Contains (parameterName))
80 throw new IndexOutOfRangeException ("The specified name does not exist: " + parameterName);
81 this [IndexOf (parameterName)] = value;
85 object IList.this [int index] {
86 get { return (OracleParameter) this [index]; }
87 set { this [index] = (OracleParameter) value; }
90 public OracleParameter this [int index] {
91 get { return (OracleParameter) list [index]; }
92 set { list [index] = value; }
95 object IDataParameterCollection.this [string parameterName] {
96 get { return this [parameterName]; }
98 if (!(value is OracleParameter))
99 throw new InvalidCastException ("The parameter was not an OracleParameter.");
100 this [parameterName] = (OracleParameter) value;
104 public object SyncRoot {
108 #endregion // Properties
112 public int Add (object value)
114 if (!(value is OracleParameter))
115 throw new InvalidCastException ("The parameter was not an OracleParameter.");
116 Add ((OracleParameter) value);
117 return IndexOf (value);
120 public OracleParameter Add (OracleParameter value)
122 if (value.Container != null)
123 throw new ArgumentException ("The OracleParameter specified in the value parameter is already added to this or another OracleParameterCollection.");
124 value.Container = this;
129 public OracleParameter Add (string parameterName, object value)
131 return Add (new OracleParameter (parameterName, value));
134 public OracleParameter Add (string parameterName, OracleType dataType)
136 return Add (new OracleParameter (parameterName, dataType));
139 public OracleParameter Add (string parameterName, OracleType dataType, int size)
141 return Add (new OracleParameter (parameterName, dataType, size));
144 public OracleParameter Add (string parameterName, OracleType dataType, int size, string srcColumn)
146 return Add (new OracleParameter (parameterName, dataType, size, srcColumn));
154 public bool Contains (object value)
156 if (!(value is OracleParameter))
157 throw new InvalidCastException ("The parameter was not an OracleParameter.");
158 return Contains (((OracleParameter) value).ParameterName);
161 public bool Contains (string parameterName)
163 foreach (OracleParameter p in list)
164 if (p.ParameterName.Equals (parameterName))
169 public void CopyTo (Array array, int index)
171 list.CopyTo (array, index);
174 public IEnumerator GetEnumerator ()
176 return list.GetEnumerator ();
179 public int IndexOf (object value)
181 if (!(value is OracleParameter))
182 throw new InvalidCastException ("The parameter was not an OracleParameter.");
183 return IndexOf (((OracleParameter) value).ParameterName);
186 public int IndexOf (string parameterName)
188 for (int i = 0; i < Count; i += 1)
189 if (this [i].ParameterName.Equals (parameterName))
194 public void Insert (int index, object value)
196 if (!(value is OracleParameter))
197 throw new InvalidCastException ("The parameter was not an OracleParameter.");
198 list.Insert (index, value);
201 public void Remove (object value)
203 if (!(value is OracleParameter))
204 throw new InvalidCastException ("The parameter was not an OracleParameter.");
208 public void RemoveAt (int index)
210 list.RemoveAt (index);
213 public void RemoveAt (string parameterName)
215 list.RemoveAt (IndexOf (parameterName));
218 #endregion // Methods