You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中Access数据库连接字符串修改及空数据问题求助

解决Access数据库迁移后无法连接的问题

核心问题分析

你当前代码的错误在于直接把连接字符串赋值给BindingSource的DataSource——BindingSource的DataSource应绑定数据集或数据表,而非连接字符串。同时还需确保数据库文件的复制配置正确,以及连接字符串正确作用于TableAdapter。

具体修复步骤

1. 修正Form_Load代码逻辑

将连接字符串配置到TableAdapter的Connection属性,而非BindingSource:

Dim appPath As String = My.Application.Info.DirectoryPath
Dim txtconnesione As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & appPath & "\Magazzino.mdb"

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' 给TableAdapter设置正确的连接字符串
    Me.TableMagazzinoTableAdapter.Connection.ConnectionString = txtconnesione
    ' 填充数据集
    Me.TableMagazzinoTableAdapter.Fill(Me.MagazzinoDataSet.TableMagazzino)
    ' BindingSource默认已绑定数据集,无需重新赋值DataSource
End Sub

2. 配置数据库文件的复制属性

  • 在Visual Studio解决方案资源管理器中找到Magazzino.mdb文件
  • 右键打开属性面板,将复制到输出目录设置为「始终复制」或「如果较新则复制」
  • 这样编译后数据库会自动同步到程序启动目录,迁移时只需打包整个输出文件夹即可

3. 兼容目标电脑的驱动环境

  • 若使用Microsoft.Jet.OLEDB.4.0驱动,确保目标电脑安装了对应32位Access驱动,同时将项目编译平台设为x86(避免64位系统兼容性问题)
  • 若目标电脑是64位且无Jet驱动,可改用Microsoft.ACE.OLEDB.12.0驱动,连接字符串修改为:
    Dim txtconnesione As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & appPath & "\Magazzino.mdb;Persist Security Info=False;"
    

4. 验证数据库路径有效性

可临时添加代码确认文件是否存在:

Dim dbPath As String = appPath & "\Magazzino.mdb"
MessageBox.Show("数据库路径:" & dbPath & vbCrLf & "文件是否存在:" & IO.File.Exists(dbPath))

若提示文件不存在,检查是否将数据库文件与程序主文件放在同一目录下。


内容的提问来源于stack exchange,提问作者phpisntvalid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:05:45