
[英]Microsoft.Jet.OLEDB.4.0 vs Microsoft.ACE.OLEDB.12.0, Which should I use?
[英]Converting connection string from Microsoft.Jet.OLEDB.4.0 to Microsoft.ACE.OLEDB.12.0 provider
我正在使用.NET程序,它将在将来的某个时刻进行64位编译,而Microsoft.Jet.OLEDB.4.0将无法运行。
我正在尝试转换此Microsoft.Jet.OLEDB.4.0连接字符串,如下所示:
"Provider=Microsoft.Jet.OLEDB.4.0;OLE DB Services=-4;Password=<PASSWORD>;User ID=<USERID>;Data Source=<ACCESSDATABASE>.MDB;Persist Security Info=True;Jet OLEDB:System database=<SYSTEMDB>.mdw"
到类似于以下内容的Microsoft.ACE.OLEDB.12.0:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<ACCESSDATABASE>.mdb;Jet OLEDB:Database Password=<PASSWORD>;Jet OLEDB:System database=<SYSTEMDB>.mdw;Persist Security Info=False"
每当我尝试使用此新的连接字符串进行连接时,都会出现此异常:
System.Data.OleDb.OleDbException (0x80040E4D): Not a valid account name or password.
有人知道如何正确转换此连接字符串以使其有效吗? 我没有关于Microsoft.ACE.OLEDB.12.0连接字符串参数的文档。
这是我用于Microsoft.ACE.OLEDB.12.0
ConnectionString
,它工作正常。
Provider=Microsoft.ACE.OLEDB.12.0; Data Source="$LOCALAPPDATA$\\Path\\database.mdb"; Persist Security Info=True; Jet OLEDB:Database Password=$PASSWORD$
我在ConnectionString
看到的唯一区别是指定系统数据库。 也许那个数据库也有密码?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.