Q:

Is there any way in .NET, other then Oledb to be database independent

Is there a way my DAL classes can be re used across different databases ? 
I know some technologies (Linq and EF) support rapid development, I appreciate this feature but I also want to keep my DAL Code reuse able in different database. 
A Simple thing that come to mind is use of Oledb with inline SQL queries, Is there a more elegant way ?  please guide me.  I am just considering 2 things. 

support to 4 most commonly used databases (SQL Server, My SQL, Access, Oracle). 
Rapid development support. 

Thanks

A:

You may consider using an ORM framework such as Entity Framework or NHibernate.  This way your data access layer will be database agnostic. 

A:

If you stick to the interfaces (IDbConnection, IDbCommand, ...) and their factory methods (IDbConnection. CreateCommand) then the only code that needs to know what database you are using is the initial connection creation (which can be encapsulated). 

A:

Entity Framework does the work you want.  The most commonly used databases support it, with the exception of Oracle.  For Oracle, you have to use third-party components as the official Oracle support for Entity Framework is still in beta.