Maybe this will help.
OleDB is a low-level api (applications Programming Interface) which allows applications a standardized interface to communicate with various databases. Although it's very powerful, OleDB can be quite complex to use. Each different database requires its own 'database provider.'
ODBC is another, older API layer which sits between the application, and the database. In order to connect to multiple database types, each database type requires the installation of its own 'database driver'
ADO is a set of Component Object Model (COM) objects, and it sits between the application and OleDB. ADO.Net is an ADO based, dotNet specific version of ADO. ADO may connect through existing ODBC drivers, by using the MSDASQL OleDB Provider, OR you may connect directly to the individual databases by using their OleDB providers.
If you can locate a copy of Rob MacDonalds "Serious ADO:Universal Data Access with Visual Basic," there's a handy diagram outlining the various APIs, drivers, and providers.
Here's
simplified version from Microsoft.