使用 Process.Start() 从 C# 启动 MS Access

问题描述 投票:0回答:1

我正在尝试启动 MS Access 并使用 System.Diagnostics.Process.Start() 从 C# 打开指定的数据库。

string appPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
appPath = $"{appPath}\\DB Application";
Process process = new Process();
process.StartInfo.FileName = "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\MSACCESS.exe";
process.StartInfo.Arguments = System.IO.Path.Combine($"{appPath}", "DB.accdb");
process.Start();

当此代码在 .NET Core 6 控制台应用程序中运行时,我收到这两条消息。

“用于启动 Microsoft Access 的命令行包含 Microsoft Access 无法识别的选项。使用有效的命令行选项退出并重新启动 Microsoft Access。”

我单击“确定”,然后收到此消息框。

“Microsoft Access 找不到数据库文件 'C:\Users\myname\AppData\Local\DB.mdb'

Microsoft Access 在这两条消息后启动,但 .accdb 文件未打开。

我需要指定一个开关或不同的参数吗?

R

c# ms-access .net-core
1个回答
0
投票

文件路径中缺少双引号,因为文件夹名称中有空格。试试这个:

process.StartInfo.Arguments = Path.Combine($"\"{appPath}", "DB.accdb\"");
© www.soinside.com 2019 - 2024. All rights reserved.