what is the best way to create an vendor independent dal in c# without using ORM?
===

Currently I have a project that involves two database providers:

1. SqlClient
2. OleDb

I need to create a DAL that handles these providers. I was thinking to create a interface like this:

    public interface IDataAccessLayer
    {
        public string GetSomeData();
    }

And implement it separately (although it's simple this is the wrong way)

    public class SqlClientDal : IDataAccessLayer
    {
        public string GetSomeData() { }
    }
    
    public class OleDbDal : IDataAccessLayer
    {
        public string GetSomeData() { }
    }

I have read some post like this:

http://stackoverflow.com/questions/1057824/net-how-to-create-vendor-independent-dataset-tableadapters-bindings-db-deci (it's good, but it doesn't provide any example)

[Obtaining a DbProviderFactory][1]

[Creating a Data Access Layer (C#)][2] (really good, but table adapters are vendor dependent)


I would like to create a DAL with this features:

1. Use of typed data tables (using visual studio designer)
2. Use of vendor independent data adapters (manually created)
3. Not ORM


How can I create a simple DAL with these features?


  [1]: http://msdn.microsoft.com/en-us/library/dd0w4a2z
  [2]: http://www.asp.net/web-forms/tutorials/data-access/introduction/creating-a-data-access-layer-cs