Why would you use a SqlConnection object instead of an OleDbConnection object?

Although a SqlConnection object is optimized for use with SQL Server while an OleDbConnection can be used for most types of databases, OleDbConnection objects require additional overhead. SqlConnection objects contain a lower level of abstraction than OleDbConnection objects by bypassing the OleDb layer, and for that reason they tend to be much faster. They are optimized for use with SQL Server 7.0 and SQL Server 2000 databases. 

SqlConnection object can only be used for connections to SQL Server 7.0 and SQL Server 2000 databases at this time, so choice 2 is incorrect. Both SqlConnection objects and OleDbConnection objects can be used with DataSet objects. DataView objects are used with DataSet objects to provide various views of the data, so choice 4 is not relevant to this question.