Foros del Web » Programación para mayores de 30 ;) » .NET »

Crear base Access por código

Estas en el tema de Crear base Access por código en el foro de .NET en Foros del Web. Buenas tardes, estoy intentando crear un base de datos access desde C# y no consigo que funcione. Eel código es el siguiente: private void CrearBDAccess() ...
  #1 (permalink)  
Antiguo 08/11/2011, 09:54
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Crear base Access por código

Buenas tardes,

estoy intentando crear un base de datos access desde C# y no consigo que funcione. Eel código es el siguiente:

private void CrearBDAccess()
{
sfdguardar.Filter = "Base de datos de Microsoft Access|*.mdb";
sfdguardar.Title = "Guardar";
if (sfdguardar.ShowDialog() == DialogResult.OK)
{
CatalogClass cat = new CatalogClass();
cat.Create("Provider = Microsoft.Jet.OLEDB.4.0;" +
"Data Source = " + sfdguardar.FileName + ";" +
"Jet OLEDB:Engine Type = 5");
cat = null;
}
}

El error lo genera donde está marcado con lo siguiente:

El tipo de interoperabilidad 'ADOX.CatalogClass' no se puede incrustar. Use la interfaz aplicable en su lugar.

Si me podeis orientar por donde puede estar el error os lo agadecería.

Un saludo.
  #2 (permalink)  
Antiguo 08/11/2011, 10:46
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: Crear base Access por código

sutituye
Provider = Microsoft.Jet.OLEDB.4.0;
por
Provider=Microsoft.ACE.OLEDB.12.0;

ami me funciona
saludos
  #3 (permalink)  
Antiguo 08/11/2011, 11:16
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Respuesta: Crear base Access por código

He probado como me has dicho pero no consigo que se me vaya el error.
  #4 (permalink)  
Antiguo 08/11/2011, 11:31
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: Crear base Access por código

ok
ADOX.CatalogClass cat = ADOX.CatalogClass nuevo ();
con esto deberia, funcionar, asegurate de estar agregando las librerias correspondientes
saludos
  #5 (permalink)  
Antiguo 09/11/2011, 04:04
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Respuesta: Crear base Access por código

He añadido la refrencia COM Microsoft ADO Ext. 2.8 for DDL and Security y hago uso de ella con:

using ADOX;

Pero sigue mostrándome el error indifentemente de como lo instancie.

ADOX.CatalogClass cat = new ADOX.CatalogClass

o

CatalogClass cat = new CatalogClass

Yo no veo que fallo puede tener, si alguien tuiene alguna idea.
  #6 (permalink)  
Antiguo 09/11/2011, 09:15
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: Crear base Access por código

te falta la libreria COM Microsoft Activex Data Objects, en mi caso uso la 2.8
  #7 (permalink)  
Antiguo 23/10/2012, 14:05
 
Fecha de Ingreso: octubre-2012
Ubicación: Colima
Mensajes: 1
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Crear base Access por código

Yo tengo el mismo problema alguien tendrá la solución???
  #8 (permalink)  
Antiguo 24/02/2014, 19:55
 
Fecha de Ingreso: febrero-2014
Mensajes: 1
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Crear base Access por código

El problema no radica en el proveedor de las bases de datos.

No se puede usar el tipo CatalogClass por que es incompatible; pero pueden usar en su lugar "Catalog" que esta alojada en ADOX

Aquí un ejemplo para que lo digieran.

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
connectionString += "Data Source=" + exportFilePath + ";Jet OLEDB:Engine Type=5";

var catalog = new Catalog(); //aqui la magia
catalog.Create(connectionString);

Etiquetas: access
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:42.