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

使用C# Process.Start()启动MS Access打开指定数据库报错求助

解决.NET Core 6启动Access打开指定数据库的命令行错误

问题原因

你的数据库所在路径包含空格(DB Application文件夹),直接作为参数传入时,Access会将空格识别为参数分隔符,引发两个问题:

  • 空格后的Application被判定为无效命令行选项,触发第一个错误提示
  • 路径被截断为C:\Users\myname\AppData\Local\DB,Access自动补充默认的.mdb后缀,导致找不到正确的.accdb文件

修正方法

给包含空格的数据库完整路径添加双引号,确保Access将整个路径识别为单个有效参数。修正后的代码如下:

string appPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
appPath = Path.Combine(appPath, "DB Application");
string fullDbPath = Path.Combine(appPath, "DB.accdb");

Process process = new Process();
process.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.exe";
// 给路径包裹双引号,处理空格导致的参数拆分问题
process.StartInfo.Arguments = $"\"{fullDbPath}\"";
process.Start();

额外优化建议

  • 始终使用Path.Combine拼接路径,避免手动拼接斜杠时出现格式错误
  • 可以通过读取注册表或Office安装检测逻辑动态获取MSACCESS.exe的路径,避免硬编码路径带来的版本兼容性问题(不同Office版本的安装路径可能不同)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:50:05