DbDataAdapter (C#/ADO.NET)

0 respostas
Nicolas_Fernandes

Olá, galerinha do GUJ!
Tudo bem?

Bom, tô criando minha camada de persistência de um projeto aqui, e me surgiram algumas dúvidas:
Todos os objetos, sejam Command, Connection, etc, etc, etc, são genéricos:

public void RecuperarDados()
{
    DbConnection connection = new DbConnection("Minha String de conexão");
    DbCommand command = new DbCommand("Minha sentença", connection);

    using (DbDataReader reader = command.ExecuteReader())
    {
        //...
    }
}

Eu fiz isso para tornar minha classe genérica para qualquer tipo de conexão, independente do banco de dados.
Através de um provider e de uma string de conexão, conecto com qualquer banco que precisar.
Por exemplo:

public DbConnection RecuperarConnection()
{
    try
    {
        DbProviderFactory providerFactory = DbProviderFactories.GetFactory("System.Data.OracleClient, por exemplo");
        DbConnection connection = providerFactory.CreateConnection();
        connection.ConnectionString = "Minha String de conexão";
        connection.Open();

        return connection;
    }
    catch (DbException errDB) { throw errDB; }
    catch (Exception err) { throw err; }
}

Agora, eu tenho um problema ao criar objetos do tipo DbDataAdapter.
Se olharmos bem, um objeto SqlDataAdapter ou OracleDataAdapter herda da DbDataAdapter. Porém, eu não consigo instanciar um objeto DbDataAdapter ou outro para que eu crie um DataAdapter genérico, entendem?

Alguém tem ideia do que posso fazer?
Valeu, abraços!

Criado 1 de agosto de 2011
Respostas 0
Participantes 1