There are several sets of objects for accessing a data source:
Objects prefixed OleDb (from the System.Data.OleDb namespace) use an OLEDB provider to access that data store.
Objects prefixed Odbc (from the System.Data.Odbc namespace) use an ODBC driver to access that data store.
Objects prefixed Oracle (from the System.Data.OracleClient namespace) use an Oracle- specific provider to access that data store.
Objects prefixed Sql (from the System.Data.SqlClient namespace) use the Microsoft SQL Server Tabular Data Stream ( TDS ) interface to access that data store.
In general, the Sql -prefixed objects are much faster and more efficient, and should always be used where you know that the data store will be Microsoft SQL Server. All the data access classes automatically provide connection pooling.