2 // System.Data.OleDb.OleDbDataAdapter
5 // Rodrigo Moya (rodrigo@ximian.com)
6 // Tim Coleman (tim@timcoleman.com)
8 // Copyright (C) Rodrigo Moya, 2002
9 // Copyright (C) Tim Coleman, 2002
13 using System.ComponentModel;
15 using System.Data.Common;
17 namespace System.Data.OleDb
19 public sealed class OleDbDataAdapter : DbDataAdapter, IDbDataAdapter
23 OleDbCommand deleteCommand;
24 OleDbCommand insertCommand;
25 OleDbCommand selectCommand;
26 OleDbCommand updateCommand;
27 MissingMappingAction missingMappingAction;
28 MissingSchemaAction missingSchemaAction;
30 static readonly object EventRowUpdated = new object ();
31 static readonly object EventRowUpdating = new object ();
37 public OleDbDataAdapter ()
38 : this (new OleDbCommand ())
42 public OleDbDataAdapter (OleDbCommand selectCommand)
44 DeleteCommand = new OleDbCommand ();
45 InsertCommand = new OleDbCommand ();
46 SelectCommand = selectCommand;
47 UpdateCommand = new OleDbCommand ();
50 public OleDbDataAdapter (string selectCommandText, OleDbConnection selectConnection)
51 : this (new OleDbCommand (selectCommandText, selectConnection))
55 public OleDbDataAdapter (string selectCommandText, string selectConnectionString)
56 : this (selectCommandText, new OleDbConnection (selectConnectionString))
64 public OleDbCommand DeleteCommand {
69 deleteCommand = value;
73 public OleDbCommand InsertCommand {
78 insertCommand = value;
82 public OleDbCommand SelectCommand {
87 selectCommand = value;
91 public OleDbCommand UpdateCommand {
96 updateCommand = value;
100 IDbCommand IDbDataAdapter.DeleteCommand {
102 return DeleteCommand;
105 if (!(value is OleDbCommand))
106 throw new ArgumentException ();
107 DeleteCommand = (OleDbCommand)value;
111 IDbCommand IDbDataAdapter.InsertCommand {
113 return InsertCommand;
116 if (!(value is OleDbCommand))
117 throw new ArgumentException ();
118 InsertCommand = (OleDbCommand)value;
122 IDbCommand IDbDataAdapter.SelectCommand {
124 return SelectCommand;
127 if (!(value is OleDbCommand))
128 throw new ArgumentException ();
129 SelectCommand = (OleDbCommand)value;
133 MissingMappingAction IDataAdapter.MissingMappingAction {
135 return missingMappingAction;
138 missingMappingAction = value;
142 MissingSchemaAction IDataAdapter.MissingSchemaAction {
144 return missingSchemaAction;
147 missingSchemaAction = value;
151 IDbCommand IDbDataAdapter.UpdateCommand {
153 return UpdateCommand;
156 if (!(value is OleDbCommand))
157 throw new ArgumentException ();
158 UpdateCommand = (OleDbCommand)value;
162 ITableMappingCollection IDataAdapter.TableMappings {
164 return TableMappings;
168 #endregion // Properties
172 protected override RowUpdatedEventArgs CreateRowUpdatedEvent (DataRow dataRow,
174 StatementType statementType,
175 DataTableMapping tableMapping)
177 return new OleDbRowUpdatedEventArgs (dataRow, command, statementType, tableMapping);
181 protected override RowUpdatingEventArgs CreateRowUpdatingEvent (DataRow dataRow,
183 StatementType statementType,
184 DataTableMapping tableMapping)
186 return new OleDbRowUpdatingEventArgs (dataRow, command, statementType, tableMapping);
189 protected override void OnRowUpdated (RowUpdatedEventArgs value)
191 OleDbRowUpdatedEventHandler handler = (OleDbRowUpdatedEventHandler) Events[EventRowUpdated];
192 if ((handler != null) && (value is OleDbRowUpdatedEventArgs))
193 handler (this, (OleDbRowUpdatedEventArgs) value);
196 protected override void OnRowUpdating (RowUpdatingEventArgs value)
198 OleDbRowUpdatingEventHandler handler = (OleDbRowUpdatingEventHandler) Events[EventRowUpdating];
199 if ((handler != null) && (value is OleDbRowUpdatingEventArgs))
200 handler (this, (OleDbRowUpdatingEventArgs) value);
203 #endregion // Methods
205 #region Events and Delegates
207 public event OleDbRowUpdatedEventHandler RowUpdated {
208 add { Events.AddHandler (EventRowUpdated, value); }
209 remove { Events.RemoveHandler (EventRowUpdated, value); }
212 public event OleDbRowUpdatedEventHandler RowUpdating {
213 add { Events.AddHandler (EventRowUpdating, value); }
214 remove { Events.RemoveHandler (EventRowUpdating, value); }
217 #endregion // Events and Delegates