所以问题是我想连接到每次打开密码时都有密码的 msaccess数据库。
这是代码
String dbFile = "db.mdb";
String connectionString = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
String driverID = ";DriverID=22;READONLY=true;pwd=qwer}";
if (CONNECTION == null || CONNECTION.isClosed()) {
dbURL = connectionString + dbFile.trim() + driverID;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
CONNECTION = DriverManager.getConnection(dbURL);
}
----------------------------------------------
Error Code : java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Not a valid password.
----------------------------------------------
我已经尝试将参数添加到get连接但是它不起作用。 请帮助:)
答案 0 :(得分:3)
MS Access数据库文件有两种类型的密码:
使用用户密码,您可以在连接字符串中提供用户名和密码。
;User Id=admin;Password=;
对于数据库密码,您需要在连接字符串中使用不同的标识符,以将密码区分为数据库密码而不是用户密码。
;Database Password=MyDbPassword;
我个人不使用数据库密码。这个功能在安全性方面没有多大帮助,所以看起来它比它的价值更麻烦。
编辑:我不知道是否可以使用ODBC连接提供数据库密码。我发现的所有连接示例在包含数据库密码时都使用了OLE DB。
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\somepath\\mydb.mdb;" & _
"Jet OLEDB:Database Password=MyDbPassword;", "admin", ""
也许它可以从当前的Access ODBC驱动程序切换到用于ODBC的Microsoft OLE DB提供程序。或者如果切换
,可能使用当前的ODBC驱动程序Database Password=MyDbPassword;
到
Jet OLEDB:Database Password=MyDbPassword;
我不知道。但在我看来,数据库密码只是在这里妨碍你。如果从数据库中删除密码,则您已经知道可以连接。