Je veux faire une application simple pour un exercice, alors ça pourrait être bien de se connecter à une base de données simple comme Access (.accdb)
Mon programme ressemble à ceci:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;
namespace myProject.Account
{
public class DbManager
{
private OleDbConnection _dbConnection;
public void OpenDbConnection()
{
_dbConnection = new OleDbConnection {ConnectionString = GetConnectionString()};
}
private string GetConnectionString()
{
return "Provider=Microsoft.ACE.OLEDB.14.0;Data Source=exercise1.accdb";
}
public void CloseDbConnection()
{
_dbConnection.Close();
}
public void GetUser()
{
DataSet myDataSet = new DataSet();
var myAdapptor = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand("SELECT * FROM tblUser", _dbConnection);
myAdapptor.SelectCommand = command;
myAdapptor.Fill(myDataSet, "tblUser");
}
}
}
J'utilise Visual Studio 2010. Lorsque je teste mon application en utilisant le mode de débogage intégré "Démarrer sans débogage" (CTRL + F5), j'obtiens cette erreur:
Le fournisseur 'Microsoft.ACE.OLEDB.14.0' n'est pas enregistré sur la machine locale.
J'ai essayé de télécharger et d'installer "Microsoft Access Database Engine 2010 Redistributable" (64 bits) à partir de Microsoft Omepage: http://www.Microsoft.com/download/en/details.aspx?id=13255
Malheureusement, cela n'a pas résolu le problème. J'ai toujours l'erreur lorsque le myAdapptor.Fill () est exécuté . Quel est le problème?
Vous avez besoin du Access 2007 Runtime .
Pour les autres personnes intéressées par ma solution, j'ai découvert que Microsoft.ACE.OLEDB.14.0 n'est pas pris en charge pour Access 2010. À la place, j'ai utilisé Microsoft.ACE.OLEDB.12.0.
Vous pouvez télécharger leur "Pilote Office System 2007: Composants de connectivité de données" à partir de ce site: Pilote Office System 2007: Composants de connectivité de données
Avait un problème similaire, mais juste un plan vieux mdb dans mon cas. Provider = Microsoft.Jet.OLEDB.4.0 fait l'affaire, pas besoin de télécharger des runtimes supplémentaires.
ajouter en utilisant System.Data.OleDb
bibliothèque.
maintenant pour la connection string
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Aishwar NIGAM\\Documents\\indianOil.accdb");