Software:DataAdapter

From HandWiki
DataAdapter
Developer(s)Microsoft
Written inC# (reference implementation)
Platform.NET Framework, .NET
Included withSystem.Data/System.Data.Common
TypeData access component (ADO.NET)

In ADO.NET, a data adapter (DataAdapter) is an object that acts as a bridge between a data source and a disconnected in-memory data representation such as a DataSet, enabling data to be retrieved into the DataSet and later written back to the data source.[1][2]

Overview

The DataAdapter is an abstract base class in the System.Data.Common namespace; provider-specific implementations (such as for SQL Server, OLE DB, or ODBC) typically derive from DbDataAdapter.[1][3] Data adapters are used with the ADO.NET disconnected model, where an application loads data into a memory-resident DataSet (including related tables, constraints, and relationships) and later reconciles changes back to the underlying data source.[4]

Operation

Filling a DataSet

A DataAdapter populates a DataSet (or DataTable) through its Fill method, using its SelectCommand to retrieve rows from the data source.[5]

Updating the data source

A DataAdapter can persist changes made in the DataSet back to the data source using Update; it applies INSERT, UPDATE and DELETE operations as appropriate based on changes tracked in the DataSet, using command objects such as InsertCommand, UpdateCommand and DeleteCommand.[6]

Schema and table mappings

Data adapters can also configure a DataSet's schema from the data source (for example, using FillSchema) and can map source table names to DataTable names through table mappings.[7][3]

Implementations

Provider-specific data adapters include:

  • SqlDataAdapter for Microsoft SQL Server (System.Data.SqlClient)[8]
  • OleDbDataAdapter for OLE DB data sources (System.Data.OleDb)[9]
  • OdbcDataAdapter for ODBC data sources (System.Data.Odbc)[10]

A DataSet can be filled and updated using multiple DataAdapter instances, and can contain related tables originating from different data sources exposed through different providers.[11]

See also

References

  1. 1.0 1.1 "DataAdapter Class (System.Data.Common)". https://learn.microsoft.com/en-us/dotnet/api/system.data.common.dataadapter. 
  2. "ADO.NET architecture". 15 September 2021. https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/ado-net-architecture. 
  3. 3.0 3.1 "DbDataAdapter Class (System.Data.Common)". https://learn.microsoft.com/en-us/dotnet/api/system.data.common.dbdataadapter. 
  4. "ADO.NET DataSets". 15 September 2021. https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/ado-net-datasets. 
  5. "Populating a DataSet from a DataAdapter". 15 September 2021. https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/populating-a-dataset-from-a-dataadapter. 
  6. "Updating Data Sources with DataAdapters". 29 November 2021. https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/updating-data-sources-with-dataadapters. 
  7. "DataAdapter.FillSchema Method (System.Data.Common)". https://learn.microsoft.com/en-us/dotnet/api/system.data.common.dataadapter.fillschema. 
  8. "SqlDataAdapter Class (System.Data.SqlClient)". https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqldataadapter?view=netframework-4.8.1. 
  9. "OleDbDataAdapter Class (System.Data.OleDb)". https://learn.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbdataadapter. 
  10. "OdbcDataAdapter Class (System.Data.Odbc)". https://learn.microsoft.com/en-us/dotnet/api/system.data.odbc.odbcdataadapter. 
  11. "Populate a DataSet from a DataAdapter". 4 September 2024. https://learn.microsoft.com/en-us/sql/connect/ado-net/populate-dataset-from-dataadapter?view=sql-server-ver17.