> So the data access classes are responsible for > getting the data from the database, and the > rest of the code doesn't know or care about the > details. I just tell the data access classes > what I want from them.
This is very good advice. I do this *EXACT* same thing myself. The only difference is, I have a deeper heirarchy. In your example... CustomerDB - CustomerDBBase (all the common queries) - CustomerDB_Sql (specific to SQL Server) - CustomerDB_Ora (specific to Oracle) CustomerDBBase would use Abstract ADO.NET. *_Sql and *_Ora would also use Abstract ADO.NET but I can special case things like data readers returning from SQL SPs. Parameter based ref cursors for Oracle, etc. 4 out of 5 times, I usually only need CustomerDBBase. Justin Rudd http://www.pinetree-tech.com/ http://radio.weblogs.com/0107260/ You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.