最近同事在工作中需要作用ASP.net1.1连接带有密码保护的Access文件。起初是用OleConnnection控件连接。
没有密码保护的时候完全正常,但是加上密码就提示“数据库被独占”、“没有相应的ISM安装”等等错误,再尝试了各种连接字符串后都没有进展!
最终在MSDN搜索到一个非官方的说法就是OleConnection不支持带有密码保护的安全信任连接,推荐将Access MDB文件放置在网站Bin目录。
如果实在有这种需求可以尝试用ODBC连接方式,连接字符串如下:
OdbcConnection myConn = new OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + Server.MapPath("demo.mdb") + ";pwd=123456");
myConn.Open();
补充:利用ODBCConnection方式连接时要注意设置Access MDB文件的相应ASP帐号的权限,否则会提示如下错误:
ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 ''Temporary (volatile) Jet DSN for process 0xf3c Thread 0xd24 DBC 0x16bfe44 Jet''。 ERROR [42000] [Microsoft][ODBC Microsoft Access Driver] 密码无效。