我在JAVA中复制一个VB.NET程序。两个版本都使用Microsoft Access作为数据库......在处理用JAVA编写的版本时,我决定在VB.NET中运行该程序,当我无处时收到以下消息:“无法识别的数据库格式”。
惯性(我不知道这是不是导致整个事情的原因),我打开数据库(访问2007)并点击“修复和压缩”。我关闭了Access并在VB.NET中重新运行程序......没什么,它是一样的。我非常辞职,以至于我决定从0开始再次创建数据库...但是当我尝试在Access中打开数据库时,出现了与VB.NET相同的错误,它甚至没有让我看到表格或关系...然后,我记得前一天,我已经在我的云中将项目上传到JAVA,所以我访问了云并重新下载了项目数据库,然后我把它放回到VB.NET中,看看是否有运行...但这次Access抛出另一个不同的错误:“Microsoft Access数据库引擎无法找到对象'对象'。确保对象存在,并且您正确拼写其名称和路径名。”,我尝试在Access中打开数据库,但它告诉我与VB.NET中相同的消息...
最有趣的是,如果我在JAVA中运行程序版本,它运行完全正常,没有抱怨任何东西......我可以插入,更新,删除....一切正常。我做了最后一次测试,看看数据库是否真的不起作用。我使用Access 2013在另一台计算机上下载了数据库...并打开数据库,好像什么都没发生一样。
我必须澄清一些事情:
最初我在大学做过数据库,那个版本就是 他们有Access 2013。
在我家里我使用Access 2007
如果我已经使用了很长时间,很明显我已经下载了Access数据库驱动程序。 (32位具体)。
VB.NET不识别数据库,但JAVA不识别。
我该怎么处理这个问题?
编辑:我如何连接到JAVA中的Access数据库
你去吧
public class GestorDB {
private Connection conn;
private final String driver;
public GestorDB(String direccionDB) throws ClassNotFoundException, SQLException{
driver = "net.ucanaccess.jdbc.UcanaccessDriver";
Class.forName(driver);
conn = DriverManager.getConnection("jdbc:ucanaccess://"+direccionDB);
}
public Connection getConnection(){
return conn;
}
}
我认为,我可以在JAVA中运行程序的原因是因为当您使用UcanAccess驱动程序时,您不需要在计算机中安装Microsoft Access。 。
答案 0 :(得分:0)
我建议你尝试在Access中创建一个新的空数据库文件,然后尝试从损坏的数据库中导入表和其他对象。
答案 1 :(得分:0)
检查这篇文章的答案:
how to connect ms access through java and how to configure odbc driver in windows7 platform
我希望它能奏效。在上面的代码中,conn对象没有Connection类。它应该是这样的:
Connection conn = DriverManager.getConnection("Your parameters")