ODBC, OLE DB and ADO.NET are different APIs / frameworks for communicating with the database. For example, ADO works with data in connected mode, mainly using server cursors, while ADO.NET works in a disconnected way, quickly pulling data from the server and caching it on the client in ADO.NET dataset objects.
Under the hood, each of them sends SQL Server SQL commands through TDS and receives data back through TDS. OLE DB allows you to get closer to TDS for performance, while ODBC abstracts a lot to provide a consistent interface for many different data sources.
Jim mcleod
source share