DataAdapter marshal by reference, disposable

DataAdapter marshal by reference, disposable

System.Data.Common (system.data.dll) abstract class

DataAdapter classes are provider-specific types that act as a bridge between a data source (such as a SQL Server database) and the ADO.NET System.Data.DataSet . DataAdapter s have two responsibilities: to retrieve the results of a query and place it in a System.Data.DataSet (when you call the Fill( ) method), and to reconcile changes in the System.Data.DataSet and apply changes back to the data source (when you call the Update( ) method.

An ADO.NET provider includes its own custom DataAdapter (such as System.Data.SqlClient.SqlDataAdapter ). Unfortunately, DataAdapter classes have a complex inheritance hierarchy. The base functionality is defined by two interfaces: System.Data.IDataAdapter (which defines the Update( ) and Fill( ) methods ) and, for relational database providers, a System.Data.IDbDataAdapter (which defines the command properties used for interacting with the data source). The relational database provider-specific DataAdapter implements only one of these interfaces directly ( System.Data.IDbDataAdapter ). It implements the other indirectly by deriving from DbDataAdapter , which in turn derives from this class. This situation is illustrated more clearly in Figure 36-2. This allows some basic DataAdapter functionality to be implemented in this class (so the provider-specific DataAdapter doesn't need to). It also allows the provider-specific class to use strongly typed Command properties but still support generic access to these properties as System.Data.IDbCommand objects (thanks to the interface).

Generally, you won't ever use the DataAdapter class directly. If you want to create generic data-access code that can use different provider-specific ADO.NET objects, you always cast the DataAdapter to the System.Data.IDbDataAdapter interface. Note that the DataAdapter class contains a mix of abstract members the provider-specific class must override and members that need no alteration ( mainly , its properties). Some properties that are implemented in this class include TableMappings (which maps data source table and field names to table and field names in the System.Data.DataSet ) and ContinueUpdateOnError (which, if true , continues updating even if some changes can't be committed and stores an error message in the corresponding System.Data.DataRow.RowError property). You can also set MissingMappingAction to tell the DataAdapter what to do if it finds a column or table that doesn't have a mapping (by default, it adds it using the name used in the data source) and MissingSchemaAction to tell the DataAdapter what to do when adding tables to a System.Data.DataSet that doesn't have a schema (it can retrieve schema information automatically, throw an exception, or simply add the table without schema information, which is the default).

 public abstract class  DataAdapter  : System.ComponentModel.Component , System.Data.IDataAdapter {  // Protected Constructors  protected  DataAdapter  (  );      protected  DataAdapter  ( DataAdapter   adapter   );  // Public Instance Properties  public bool  AcceptChangesDuringFill  {set; get; }     public bool  ContinueUpdateOnError  {set; get; }     public MissingMappingAction  MissingMappingAction  {set; get; }  // implements System.Data.IDataAdapter  public MissingSchemaAction  MissingSchemaAction  {set; get; }  // implements System.Data.IDataAdapter  public DataTableMappingCollection  TableMappings  {get; }  // Public Instance Methods  public abstract int  Fill  ( System.Data.DataSet   dataSet   );  // implements System.Data.IDataAdapter  public abstract DataTable[  ]  FillSchema  (System.Data.DataSet   dataSet   ,         System.Data.SchemaType   schemaType   );  // implements System.Data.IDataAdapter  public abstract IDataParameter[  ]  GetFillParameters  (  );  // implements System.Data.IDataAdapter  public abstract int  Update  ( System.Data.DataSet   dataSet   );  // implements System.Data.IDataAdapter   // Protected Instance Methods  protected virtual DataAdapter  CloneInternals  (  );      protected virtual DataTableMappingCollection  CreateTableMappings  ();    protected override void  Dispose  ( bool   disposing   );  // overrides System.ComponentModel.Component  protected virtual bool  ShouldSerializeTableMappings  (  );   } 

Hierarchy

System.Object figs/u2192.gif System.MarshalByRefObject figs/u2192.gif System.ComponentModel.Component(System.ComponentModel.IComponent, System.IDisposable) figs/u2192.gif DataAdapter(System.Data.IDataAdapter)

Subclasses

DbDataAdapter



ADO. NET in a Nutshell
ADO.NET in a Nutshell
ISBN: 0596003617
EAN: 2147483647
Year: 2005
Pages: 415

Similar book on Amazon

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net