database - 简单的 VB 2010 应用程序不将数据保存到 Access 2007

标签 database vb.net winforms ms-access-2007

我已经下载了 VB 2010 的试用版,并制作了一个连接到 Access 2007 MDB 文件的小型应用程序。

有几个地方出了问题:

  1. 如果我尝试发布它,然后运行生成的安装文件,它会说找不到 .MDB 文件。

  2. 如果我在开发过程中运行它 (F5),它运行良好,并且当我将新数据输入 DataGridView 时,我知道它会被保存,因为当我关闭 session 并再次按 F5 时,新输入的数据会被保存。仍然存在。 (更新数据的相关代码很简单):

    Me.Validate()
    Me.MenuItemsBindingSource.EndEdit()
    Me.MenuItemsTableAdapter.Update(Me.MenuOrdersDataSet.MenuItems)
    Me.MenuOrdersDataSet.AcceptChanges()
    

但是,如果我关闭整个项目并重新运行它并查看 DataGridView,或者如果我手动查看 .MDB 文件,它就不再包含新输入的数据。

这是我的连接代码:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Me.MenuItemsTableAdapter.Fill(Me.MenuOrdersDataSet.MenuItems)
    Dim con As New OleDb.OleDbConnection
    Dim dbString As String
    Dim ds As New DataSet
    Dim da As OleDb.OleDbDataAdapter
    Dim sql As String

    dbString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\MenuOrders.accdb"

    con.ConnectionString = dbString
    con.Open()

    sql = "SELECT * FROM MenuItems"
    da = New OleDb.OleDbDataAdapter(sql, con)
    da.Fill(ds, "MenuItems")
    con.Close()

End Sub

怎么了?这些问题是否与试用版有关,或者是否还有其他一些我应该注意的明显问题?

最佳答案

最终执行了以下操作来修复它。

在解决方案资源管理器中,我打开 App.config 并将数据库的绝对路径放入 connectionStrings 标记中,替换默认的 |DataDirectory| 文本。

不确定这是否是最好的做法..但它有效!

<connectionStrings>
    <add name="MenuSystem.My.MySettings.MenuDBConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Administrator\Documents\MenuDB.accdb"
        providerName="System.Data.OleDb" />
</connectionStrings>

关于database - 简单的 VB 2010 应用程序不将数据保存到 Access 2007,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13513123/

相关文章:

php - 你能用 PHP 提取数据库 "type"信息吗?

mysql - 满足多种用户偏好的数据库设计?

vb.net - 以编程方式单击按钮

html - MVC4 项目图像不显示

c# - 如何在 SelectedIndexChanged 事件之前检测 TabControl 中标签页的变化?

Python SQLite3 - 表输出格式问题和处理 IntegrityError

database - 在 R 中组合多个观察值

vb.net - 如何在后台监听键盘并按需触发击键?

winforms - 在 Visual Studio 2010 中缺少 VB6 的 shift-click 添加工具箱项

c# - ToolStrip 圆角