J'essaie de me connecter à un fichier mdb et je comprends que j'aurais besoin du fournisseur de données Microsoft.OLEDB.JET.4.0
. Malheureusement, je ne l'ai pas installé sur la machine (universitaire)… .. Étant donné qu'ils ne fournissent pas ce fournisseur, je pense qu'il devrait y avoir un moyen de contourner le problème.
Comment puis-je me connecter au fichier sans Microsoft.OLEDB.JET.4.0
ou existe-t-il une alternative?
J'ai les fournisseurs suivants:
J'ai essayé d'utiliser OLE DB Provider for Microsoft Directory Services
, auquel, lors du test de la connexion, le message «Test a réussi mais certains paramètres n'ont pas été acceptés par le fournisseur». J'ai pris cette ficelle et je l'ai utilisée quand même et j'ai eu ADsDSOObject' failed with no error message available, result code: DB_E_ERRORSINCOMMAND(0x80040E14)
.
Le moyen le plus simple de se connecter consiste à utiliser OdbcConnection avec un code comme celui-ci.
using System.Data.Odbc;
using(OdbcConnection myConnection = new OdbcConnection())
{
myConnection.ConnectionString = myConnectionString;
myConnection.Open();
//execute queries, etc
}
où myConnectionString est quelque chose comme ça
myConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" +
"Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;
Voir ConnectionStrings
En alternative, vous pouvez créer un DSN puis utiliser ce DSN dans votre chaîne de connexion.
maintenant votre connectionString pourrait être écrit de cette façon
myConnectionString = "DSN=myDSN;"
Voici comment utiliser une base de données Access OLEDB ou Ace OLEDB Jet:
using System.Data;
using System.Data.OleDb;
string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\myPath\myFile.mdb;" +
"Persist Security Info=True;" +
"Jet OLEDB:Database Password=myPassword;";
try
{
// Open OleDb Connection
OleDbConnection myConnection = new OleDbConnection();
myConnection.ConnectionString = myConnectionString;
myConnection.Open();
// Execute Queries
OleDbCommand cmd = myConnection.CreateCommand();
cmd.CommandText = "SELECT * FROM `myTable`";
OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // close conn after complete
// Load the result into a DataTable
DataTable myDataTable = new DataTable();
myDataTable.Load(reader);
}
catch (Exception ex)
{
Console.WriteLine("OLEDB Connection FAILED: " + ex.Message);
}
Quelle extension de fichier Access ou vous utilisez? Jet OLEDB ou Ace OLEDB . Si votre base de données Access est .mdb (aka Jet Oledb)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Oledb
namespace MembershipInformationSystem.Helpers
{
public class dbs
{
private String connectionString;
private String OleDBProvider = "Microsoft.JET.OLEDB.4.0"; \\if ACE Microsoft.ACE.OLEDB.12.0
private String OleDBDataSource = "C:\\yourdb.mdb";
private String OleDBPassword = "infosys";
private String PersistSecurityInfo = "False";
public dbs()
{
}
public dbs(String connectionString)
{
this.connectionString = connectionString;
}
public String konek()
{
connectionString = "Provider=" + OleDBProvider + ";Data Source=" + OleDBDataSource + ";JET OLEDB:Database Password=" + OleDBPassword + ";Persist Security Info=" + PersistSecurityInfo + "";
return connectionString;
}
}
}
Vous devez utiliser le "Fournisseur de base de données Microsoft OLE pour les pilotes ODBC" pour accéder à Microsoft Access. Voici l'exemple de tutoriel sur son utilisation
http://msdn.Microsoft.com/en-us/library/aa288452(v=vs.71).aspx
Essaye ça..
using System.Data.OleDb;
OleDbConnection dbConn;
dConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Registration.accdb;");
Un autre moyen simple de se connecter consiste à utiliser un fichier OdbcConnection using App.config fichier comme celui-ci
<appSettings>
<add key="Conn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MyDB.mdb;Persist Security Info=True"/>
</appSettings>
MyDB.mdb est mon fichier de base de données et il est présent dans le dossier principal de l'application avec le fichier exe principal.
si votre fichier mdf a un mot de passe, utilisez-le comme ceci
<appSettings>
<add key="Conn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MyDB.mdb;Persist Security Info=True;Jet OLEDB:Database Password=Admin$@123"/>
</appSettings>