Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2010, 13:36
leoi
 
Fecha de Ingreso: agosto-2002
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
DbProviderFactory y proveedores de datos .NET

Hola a todos

Estoy intentando hacer una aplicación en VB 2008, en la que se le permita al usuario seleccionar entre dos bases de datos distintas (Sqlite y Firebird). Leyendo encontre que esto puede hacerse mediante DbProviderFactory, en la que se crean objetos genéricos (connection, datareader, etc.) en vez de los correspondientes a un proveedor en particular (SQLiteConnection, etc), pero no logro hacerlo funcionar.



El codigo que tengo es el siguiente (por ahora solo con Sqlite):

Código:
Imports System.Data.Common

Public Class Form3

    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim strProveedor As String
        Dim proveedor As Data.Common.DbProviderFactory
        Dim conexion As DbConnection
        Dim cm As DbCommand
        Dim dr As DbDataReader
        Dim conStr As String


        strProveedor = "System.Data.Sqlite"
        conStr = "Data Source = prueba.bd.sqlite"

        proveedor = DbProviderFactories.GetFactory(strProveedor)
        conexion = proveedor.CreateConnection()

        cm = proveedor.CreateCommand()

        conexion.ConnectionString = conStr

        conexion.Open()

        cm.Connection = conexion

        cm.CommandText = "Select * from personas"

        dr = cm.ExecuteReader

    End Sub


End Class



Al ejecutarlo obtengo el siguiente error:

Cita:
No se encuentra el proveedor de datos de .Net Framework solicitado. Puede que no esté instalado.


Investigando un poco encontré también que hay que registrar el proveedor pero no se bien cuales son los pasos para hacerlo. Puse unas lineas en el archivo app.config (XML) pero tampoco funciona.

Les agradezco por cualquier sugerencia.

Leoi
__________________
Principio Legal Legalidad en la web y Directorio de Software Open Source
Pais Once El lugar donde descubrir una ciudad