“损坏的”访问数据库

时间:2016-12-12 16:42:13

标签: java database vb.net ms-access

我在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不识别。

  • 我无法在家中使用Access 2007
  • 打开数据库

我该怎么处理这个问题?

编辑:我如何连接到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。 。

2 个答案:

答案 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")
相关问题