2 // System.Data.OleDb.OleDbParameterCollection
5 // Rodrigo Moya (rodrigo@ximian.com)
6 // Tim Coleman (tim@timcoleman.com)
8 // Copyright (C) Rodrigo Moya, 2002
9 // Copyright (C) Tim Coleman, 2002
12 using System.Collections;
14 using System.Data.Common;
16 namespace System.Data.OleDb
18 public sealed class OleDbParameterCollection : MarshalByRefObject,
19 IDataParameterCollection, IList, ICollection, IEnumerable
23 ArrayList list = new ArrayList ();
30 get { return list.Count; }
33 public OleDbParameter this[int index] {
34 get { return (OleDbParameter) list[index]; }
35 set { list[index] = value; }
38 public OleDbParameter this[string parameterName] {
40 get { throw new NotImplementedException (); }
42 set { throw new NotImplementedException (); }
45 int ICollection.Count {
46 get { return list.Count; }
49 bool IList.IsFixedSize {
53 bool IList.IsReadOnly {
57 bool ICollection.IsSynchronized {
58 get { return list.IsSynchronized; }
61 object ICollection.SyncRoot {
62 get { return list.SyncRoot; }
65 object IList.this[int index] {
66 get { return list[index]; }
67 set { list[index] = value; }
70 object IDataParameterCollection.this[string name]
74 throw new NotImplementedException ();
78 throw new NotImplementedException ();
82 internal IntPtr GdaParameterList {
87 param_list = libgda.gda_parameter_list_new ();
88 // FIXME: add parameters to list
94 #endregion // Properties
99 public OleDbParameter Add (OleDbParameter parameter)
101 list.Add (parameter);
105 public OleDbParameter Add (string name, object value)
107 OleDbParameter parameter = new OleDbParameter (name, value);
108 list.Add (parameter);
112 public OleDbParameter Add (string name, OleDbType type)
114 OleDbParameter parameter = new OleDbParameter (name, type);
115 list.Add (parameter);
119 public OleDbParameter Add (string name, OleDbType type, int width)
121 OleDbParameter parameter = new OleDbParameter (name, type, width);
122 list.Add (parameter);
126 public OleDbParameter Add (string name, OleDbType type,
127 int width, string src_col)
129 OleDbParameter parameter = new OleDbParameter (name, type, width, src_col);
130 list.Add (parameter);
134 int IList.Add (object value)
136 if (!(value is IDataParameter))
137 throw new InvalidCastException ();
140 return list.IndexOf (value);
148 bool IList.Contains (object value)
150 return list.Contains (value);
153 bool IDataParameterCollection.Contains (string value)
155 for (int i = 0; i < list.Count; i++) {
156 IDataParameter parameter;
158 parameter = (IDataParameter) list[i];
159 if (parameter.ParameterName == value)
166 void ICollection.CopyTo (Array array, int index)
168 ((OleDbParameter[])(list.ToArray ())).CopyTo (array, index);
171 IEnumerator IEnumerable.GetEnumerator ()
173 return list.GetEnumerator ();
176 int IList.IndexOf (object value)
178 return list.IndexOf (value);
181 int IDataParameterCollection.IndexOf (string name)
183 return list.IndexOf (((IDataParameterCollection) this)[name]);
186 void IList.Insert (int index, object value)
188 list.Insert (index, value);
191 void IList.Remove (object value)
196 void IList.RemoveAt (int index)
198 list.Remove ((object) list[index]);
201 void IDataParameterCollection.RemoveAt (string name)
203 list.Remove (((IDataParameterCollection) this)[name]);
206 #endregion // Methods