Windows窗体应用连接Access MDB文件时遇文件未找到错误求解决
解决Windows窗体连接Access MDB文件找不到的问题
问题核心
报错明确显示程序在运行目录C:\Users\shera\Desktop\repos\Elevator\Elevator\bin\Debug\net6.0-windows\下找不到elevator-Records.mdb,本质是文件路径不匹配,以下是具体解决方法:
1. 使用绝对路径连接数据库
如果你的elevator-Records.mdb不在程序运行的Debug目录(比如存放在项目根目录),直接写入完整的绝对路径即可:
var DBPath = @"C:\Users\shera\Desktop\repos\Elevator\Elevator\elevator-Records.mdb"; conn = new OleDbConnection($"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={DBPath}"); conn.Open(); System.Windows.Forms.MessageBox.Show("Connected successfully");
注意用@前缀避免反斜杠转义问题,也可以把路径中的\替换为\\。
2. 配置文件自动复制到输出目录
如果想保留相对路径,可通过Visual Studio设置让数据库文件随编译自动同步到Debug目录:
- 在解决方案资源管理器中右键点击
elevator-Records.mdb文件,选择属性 - 将复制到输出目录设置为如果较新则复制或始终复制
- 重新编译项目,文件会自动同步到运行目录,原相对路径代码即可正常工作。
3. 验证ACE驱动兼容性
虽然报错是找不到文件,但如果Microsoft Access Database Engine(ACE驱动)版本与项目平台不匹配,也可能引发类似异常:
- 确认安装了对应位数的ACE驱动(32位/64位),与项目的平台目标(项目属性→生成中设置)一致
- 若项目设置为Any CPU,建议改为明确的32位或64位,避免驱动位数不兼容问题
报错信息:
System.Data.OleDb.OleDbException: 'Could not find file 'C:\Users\shera\Desktop\repos\Elevator\Elevator\bin\Debug\net6.0-windows\elevator-Records.mdb
内容的提问来源于stack exchange,提问作者Sheran Malik
相关产品推荐
相关产品推荐

