Our development team was given a SQL2000 database that was copied from SQL 6.5 and asked to create a Data Access Library for it. Then create a Conversion Library to convert some off that applications data to another applications data (via it's Data Access Library). All went reasonably smoothly, but upon deployment our first issue was "SqlClient provider does not work with SQL Server databases older than 7.0". So, no problem! We'll switch it over to the OleDb provider, right? Well, One huge difference that I just discovered (after spending way too much time) between SqlClient and OleDb: Parameters must be in exact order. Granted, I'm old school, and I do that all the time anyway. But the team member who developed the Data Access Library swore that parameters do not have to match because the providers matches them to the Stored Procedure by name. Well, this is not the case with the OleDb provider, keep your OleDbParameters lined up with the actual Stored Procedure parameters. To that team member's defense, his code worked perfectly fine using the SqlClient provider, so obviously they don't have to match there, but why not do it any way? Would it really save you any time?