我正在尝试连接到mdb文件,我知道我需要Microsoft.OLEDB.JET.4.0
数据提供程序。不幸的是,我没有在(大学)机器上安装它。
既然,他们没有提供那个提供者,我相信应该有办法解决。
如何在没有Microsoft.OLEDB.JET.4.0
的情况下连接到该文件,还是有其他选择?
我有以下提供者:
我尝试使用OLE DB Provider for Microsoft Directory Services
,在测试连接的同时,我得到'测试成功但提供商不接受某些设置'。我拿了那根弦然后用它了,我得到了ADsDSOObject' failed with no error message available, result code: DB_E_ERRORSINCOMMAND(0x80040E14)
。
答案 0 :(得分:22)
最简单的连接方式是使用类似
的代码通过OdbcConnectionusing System.Data.Odbc;
using(OdbcConnection myConnection = new OdbcConnection())
{
myConnection.ConnectionString = myConnectionString;
myConnection.Open();
//execute queries, etc
}
其中myConnectionString是这样的
myConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" +
"Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;
另外,您可以创建DSN,然后在连接字符串中使用该DSN
现在你的connectionString可以用这种方式编写
myConnectionString = "DSN=myDSN;"
答案 1 :(得分:4)
以下是如何使用Jet OLEDB或Ace OLEDB Access DB:
new OpenLayers.Layer.Google("Google Roadmap", {
streetViewControl: true
})
答案 2 :(得分:3)
您应该使用“Microsoft OLE DB Provider for ODBC Drivers”来访问Microsoft Access。以下是使用它的示例教程
http://msdn.microsoft.com/en-us/library/aa288452(v=vs.71).aspx
答案 3 :(得分:3)
您使用的Access文件扩展名是什么? Jet OLEDB或Ace OLEDB。 如果您的Access数据库是.mdb(又名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;
}
}
}
答案 4 :(得分:0)
试试这个..
using System.Data.OleDb;
OleDbConnection dbConn;
dConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Registration.accdb;");
答案 5 :(得分:0)
另一种最简单的连接方式是通过 OdbcConnection 使用 App.config 这样的文件
<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>
MyDB.mdb是我的数据库文件,它存在于主exe文件的当前主应用程序文件夹中。
如果您的mdf文件有密码,那么就像这样使用
SELECT
TO_TIMESTAMP(EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'.'),'yyyy-MM-ddThh:mm:ss') AS DATE,
recipient-address as Receiver,
sender-address as Sender
FROM '[LOGFILEPATH]'
WHERE (sender-address='mrsmith@conoso.com' OR recipient-address='mrsmith@conoso.com') AND Date > TO_TIMESTAMP('2017-01-22 22:18:00', 'yyyy-MM-dd hh:mm:ss')
GROUP BY Receiver, Date, Sender