We know that ADO.NET allows us to interact with different types of data sources and different types of databases. However, there isn't a single set of classes that allow you to accomplish this universally. Since different data sources expose different protocols, we need a way to communicate with the right data source using the right protocol Some older data sources use the ODBC protocol, many newer data sources use the OleDb protocol, and there are more data sources every day that allow you to communicate with them directly through .NET ADO.NET class libraries.
ADO.NET provides a relatively common way to interact with data sources, but comes in different sets of libraries for each way you can talk to a data source. These libraries are called Data Providers and are usually named for the protocol or data source type they allow you to interact with.
Table 1 lists some well known data providers, the API prefix they use, and the type of data source they allow you to interact with.
Provider Name | API prefix | Data Source Description |
---|---|---|
ODBC Data Provider | Odbc | Data Sources with an ODBC interface. Normally older data bases. |
OleDb Data Provider | OleDb | Data Sources that expose an OleDb interface, i.e. Access or Excel. |
Oracle Data Provider | Oracle | For Oracle Databases. |
SQL Data Provider | Sql | For interacting with Microsoft SQL Server. |
Borland Data Provider | Bdp | Generic access to many databases such as Interbase, SQL Server, IBM DB2, and Oracle. |