2 // System.Data.Odbc.OdbcDataAdapter.cs
5 // Rodrigo Moya (rodrigo@ximian.com)
6 // Daniel Morgan (danmorg@sc.rr.com)
7 // Tim Coleman (tim@timcoleman.com)
9 // (C) Ximian, Inc 2002
10 // Copyright (C) 2002 Tim Coleman
14 using System.ComponentModel;
16 using System.Data.Common;
18 namespace System.Data.Odbc {
19 [DefaultEvent ("RowUpdated")]
20 public sealed class OdbcDataAdapter : DbDataAdapter, IDbDataAdapter
24 bool disposed = false;
25 OdbcCommand deleteCommand;
26 OdbcCommand insertCommand;
27 OdbcCommand selectCommand;
28 OdbcCommand updateCommand;
34 public OdbcDataAdapter ()
35 : this (new OdbcCommand ())
39 public OdbcDataAdapter (OdbcCommand selectCommand)
43 SelectCommand = selectCommand;
47 public OdbcDataAdapter (string selectCommandText, OdbcConnection selectConnection)
48 : this (new OdbcCommand (selectCommandText, selectConnection))
52 public OdbcDataAdapter (string selectCommandText, string selectConnectionString)
53 : this (selectCommandText, new OdbcConnection (selectConnectionString))
61 [DataCategory ("Update")]
62 [DataSysDescription ("Used during Update for deleted rows in DataSet.")]
64 public OdbcCommand DeleteCommand {
65 get { return deleteCommand; }
66 set { deleteCommand = value; }
69 [DataCategory ("Update")]
70 [DataSysDescription ("Used during Update for new rows in DataSet.")]
72 public OdbcCommand InsertCommand {
73 get { return insertCommand; }
74 set { insertCommand = value; }
77 [DataCategory ("Fill")]
78 [DataSysDescription ("Used during Fill/FillSchema.")]
80 public OdbcCommand SelectCommand {
81 get { return selectCommand; }
82 set { selectCommand = value; }
85 [DataCategory ("Update")]
86 [DataSysDescription ("Used during Update for modified rows in DataSet.")]
88 public OdbcCommand UpdateCommand {
89 get { return updateCommand; }
90 set { updateCommand = value; }
93 IDbCommand IDbDataAdapter.DeleteCommand {
94 get { return DeleteCommand; }
96 if (!(value is OdbcCommand))
97 throw new ArgumentException ();
98 DeleteCommand = (OdbcCommand)value;
102 IDbCommand IDbDataAdapter.InsertCommand {
103 get { return InsertCommand; }
105 if (!(value is OdbcCommand))
106 throw new ArgumentException ();
107 InsertCommand = (OdbcCommand)value;
111 IDbCommand IDbDataAdapter.SelectCommand {
112 get { return SelectCommand; }
114 if (!(value is OdbcCommand))
115 throw new ArgumentException ();
116 SelectCommand = (OdbcCommand)value;
120 IDbCommand IDbDataAdapter.UpdateCommand {
121 get { return UpdateCommand; }
123 if (!(value is OdbcCommand))
124 throw new ArgumentException ();
125 UpdateCommand = (OdbcCommand)value;
130 ITableMappingCollection IDataAdapter.TableMappings {
131 get { return TableMappings; }
134 #endregion // Properties
138 protected override RowUpdatedEventArgs CreateRowUpdatedEvent (DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping)
140 return new OdbcRowUpdatedEventArgs (dataRow, command, statementType, tableMapping);
144 protected override RowUpdatingEventArgs CreateRowUpdatingEvent (DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping)
146 return new OdbcRowUpdatingEventArgs (dataRow, command, statementType, tableMapping);
149 protected override void Dispose (bool disposing)
153 // Release managed resources
155 // Release unmanaged resources
160 protected override void OnRowUpdated (RowUpdatedEventArgs value)
162 if (RowUpdated != null)
163 RowUpdated (this, (OdbcRowUpdatedEventArgs) value);
166 protected override void OnRowUpdating (RowUpdatingEventArgs value)
168 if (RowUpdating != null)
169 RowUpdating (this, (OdbcRowUpdatingEventArgs) value);
172 #endregion // Methods
174 #region Events and Delegates
176 [DataCategory ("Update")]
177 [DataSysDescription ("Event triggered before every DataRow during Update.")]
178 public event OdbcRowUpdatedEventHandler RowUpdated;
180 [DataCategory ("Update")]
181 [DataSysDescription ("Event triggered after every DataRow during Update.")]
182 public event OdbcRowUpdatingEventHandler RowUpdating;
184 #endregion // Events and Delegates