Access没有显示我通过vb.net表单输入的记录

时间:2015-07-29 16:52:54

标签: vb.net ms-access-2007

我是vb.net编程的新手。我在数据库处理方面遇到了问题。我使用oledb来处理数据库,这是我项目中的MS Access。我当时正在处理查询。现在问题是我的查询在vb表单上运行良好但不影响实际的数据库。例如,当我添加一条记录时,它会显示已成功添加的记录',我用于我的构造的消息,但实际的数据库没有显示我刚输入的记录,甚至得到了上面的构造消息同样。我也在sql编辑器中检查了查询,它做得很好。我已经在vb调试模式下检查了本地人,所有都包含正确的值。 我不知道背后的原因是什么。为什么显示成功消息但不修改实际数据库。到目前为止,触发删除查询的情况也是如此。我还没有尝试过更新查询。

技术 - 带有MS Access的Visual Basic.net 我使用的是Access 2007和Visual Studio 2013 请按照您的建议提供帮助

2 个答案:

答案 0 :(得分:0)

表单上的控件是否具有正确的控件源,即应该读取和写入的数据库表/查询?

答案 1 :(得分:0)

基本上问题是我的理解和.Net工作之间的差距。 这是解决方案。

您可以通过两种方式包含数据库:

1.从地方直接将其导入您的项目,例如使用拖放或其他一些方法。

2.或者,通过使用向导包含它。

但是,不同之处在于您在项目中使用的连接字符串,如果您提供数据库的绝对路径,那么您将直接看到使用应用程序完成的数据库更改,即使在IDE的测试和调试模式下也是如此。

    connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\xyz.accdb"

但是,如果您正在使用向导提供的连接字符串,例如,

    connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\xyz.accdb"

IDE将要做的是每当您运行调试或测试项目时,每次都会在 / bin / Debug 文件夹中复制实际数据库及其内容。因此,您执行的更改只对该副本可见,而不是实际文件。因此,如果您想要使用数据库进行验证(如我们的情况那样),请检查数据库的副本,该副本将出现在 / bin / Debug 文件夹中。你会看到那里的变化。但是,每次运行调试项目时,它都会用原始副本替换该副本。

所以,实际上我正在检查原始数据库文件,而不是那个副本,因为只对该副本进行了更改。所以这就是我遇到上述问题的原因,而不是由于任何编程错误。