OdbcConnection、OleDbConnection均可讀取mdb文件
OleDbConnection
private static void UseOleDbConnection(string filePath,string sql)
{
var myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
$"Data Source={filePath};" +
"Persist Security Info=True;" +
"Jet OLEDB:Database Password=myPassword;";
using (OleDbConnection myConnection = new OleDbConnection())
{
// 打開OleDb連接
myConnection.ConnectionString = myConnectionString;
myConnection.Open();
// 執行查詢
OleDbCommand cmd = myConnection.CreateCommand();
cmd.CommandText = sql;
OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // 完成查詢操作后關閉連接
// 加載數據到DataTable
DataTable myDataTable = new DataTable();
myDataTable.Load(reader);
}
}
OdbcConnection
private static void UseOdbcConnection(string filePath, string sql)
{
var myConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" + $"Dbq={filePath};Uid=Admin;Pwd=;";
using (OdbcConnection myConnection = new OdbcConnection())
{
// 打開OleDb連接
myConnection.ConnectionString = myConnectionString;
myConnection.Open();
// 執行查詢
OdbcDataAdapter pAdapter = new OdbcDataAdapter(sql, myConnection);
DataTable dataTable = new DataTable();
pAdapter.Fill(dataTable);
}
}
ODBC & Ole Db
OleDbConnection類的對象連接支持OLE DB的數據庫,如Access;而OdbcConnection類的對象連接任何支持ODBC的數據庫
二者的區別和聯系:ODBC、OLEDB和ADO之間的關系 ,以及性能比較
示例代碼
參考資料
How to connect to a MS Access file (mdb) using C#?
各版本Access連接字符串寫法
OleDbConnection 類
OdbcConnection 類