OleDbParameterCollection.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. //
  2. // System.Data.OleDb.OleDbParameterCollection
  3. //
  4. // Author:
  5. // Rodrigo Moya ([email protected])
  6. // Tim Coleman ([email protected])
  7. //
  8. // Copyright (C) Rodrigo Moya, 2002
  9. // Copyright (C) Tim Coleman, 2002
  10. //
  11. using System.Collections;
  12. using System.Data;
  13. using System.Data.Common;
  14. namespace System.Data.OleDb
  15. {
  16. public sealed class OleDbParameterCollection : MarshalByRefObject,
  17. IDataParameterCollection, IList, ICollection, IEnumerable
  18. {
  19. #region Fields
  20. ArrayList list = new ArrayList ();
  21. #endregion // Fields
  22. #region Properties
  23. public int Count {
  24. get { return list.Count; }
  25. }
  26. public OleDbParameter this[int index] {
  27. get { return (OleDbParameter) list[index]; }
  28. set { list[index] = value; }
  29. }
  30. public OleDbParameter this[string parameterName] {
  31. [MonoTODO]
  32. get { throw new NotImplementedException (); }
  33. [MonoTODO]
  34. set { throw new NotImplementedException (); }
  35. }
  36. int ICollection.Count {
  37. get { return list.Count; }
  38. }
  39. bool IList.IsFixedSize {
  40. get { return false; }
  41. }
  42. bool IList.IsReadOnly {
  43. get { return false; }
  44. }
  45. bool ICollection.IsSynchronized {
  46. get { return list.IsSynchronized; }
  47. }
  48. object ICollection.SyncRoot {
  49. get { return list.SyncRoot; }
  50. }
  51. object IList.this[int index] {
  52. get { return list[index]; }
  53. set { list[index] = value; }
  54. }
  55. object IDataParameterCollection.this[string name] {
  56. [MonoTODO]
  57. get { throw new NotImplementedException (); }
  58. [MonoTODO]
  59. set { throw new NotImplementedException (); }
  60. }
  61. internal IntPtr GdaParameterList {
  62. [MonoTODO]
  63. get { throw new NotImplementedException (); }
  64. }
  65. #endregion // Properties
  66. #region Methods
  67. public OleDbParameter Add (OleDbParameter parameter)
  68. {
  69. list.Add (parameter);
  70. return parameter;
  71. }
  72. public OleDbParameter Add (string name, object value)
  73. {
  74. OleDbParameter parameter = new OleDbParameter (name, value);
  75. list.Add (parameter);
  76. return parameter;
  77. }
  78. public OleDbParameter Add (string name, OleDbType type)
  79. {
  80. OleDbParameter parameter = new OleDbParameter (name, type);
  81. list.Add (parameter);
  82. return parameter;
  83. }
  84. public OleDbParameter Add (string name, OleDbType type, int width)
  85. {
  86. OleDbParameter parameter = new OleDbParameter (name, type, width);
  87. list.Add (parameter);
  88. return parameter;
  89. }
  90. public OleDbParameter Add (string name, OleDbType type,
  91. int width, string src_col)
  92. {
  93. OleDbParameter parameter = new OleDbParameter (name, type, width, src_col);
  94. list.Add (parameter);
  95. return parameter;
  96. }
  97. int IList.Add (object value)
  98. {
  99. if (!(value is IDataParameter))
  100. throw new InvalidCastException ();
  101. list.Add (value);
  102. return list.IndexOf (value);
  103. }
  104. void IList.Clear ()
  105. {
  106. list.Clear ();
  107. }
  108. bool IList.Contains (object value)
  109. {
  110. return list.Contains (value);
  111. }
  112. bool IDataParameterCollection.Contains (string value)
  113. {
  114. for (int i = 0; i < list.Count; i++) {
  115. IDataParameter parameter;
  116. parameter = (IDataParameter) list[i];
  117. if (parameter.ParameterName == value)
  118. return true;
  119. }
  120. return false;
  121. }
  122. void ICollection.CopyTo (Array array, int index)
  123. {
  124. ((OleDbParameter[])(list.ToArray ())).CopyTo (array, index);
  125. }
  126. IEnumerator IEnumerable.GetEnumerator ()
  127. {
  128. return list.GetEnumerator ();
  129. }
  130. int IList.IndexOf (object value)
  131. {
  132. return list.IndexOf (value);
  133. }
  134. int IDataParameterCollection.IndexOf (string name)
  135. {
  136. return list.IndexOf (((IDataParameterCollection) this)[name]);
  137. }
  138. void IList.Insert (int index, object value)
  139. {
  140. list.Insert (index, value);
  141. }
  142. void IList.Remove (object value)
  143. {
  144. list.Remove (value);
  145. }
  146. void IList.RemoveAt (int index)
  147. {
  148. list.Remove ((object) list[index]);
  149. }
  150. void IDataParameterCollection.RemoveAt (string name)
  151. {
  152. list.Remove (((IDataParameterCollection) this)[name]);
  153. }
  154. #endregion // Methods
  155. }
  156. }