【发布时间】:2012-03-07 18:53:17
【问题描述】:
好的,我有三个 Microsoft Access 数据库。我希望能够以编程方式在这些之间切换。我有一个 void 方法,它接受一个名为 dbName(我的数据库名称)的字符串参数。
public void SwitchDatabase(string dbName)
{
}
我知道我的 Access 数据库的 MainWindowTitle 是什么,并且每个数据库都有不同的 MainWindowTitle,因此我可以创建 Process 类的数组并使其相等,因此 System.Diagnostics.Process.GetProcesses()。然后,我可以遍历正在运行的进程,直到找到 ProcessName 为 MSACCESS 且 MainWindowTitle 正确的进程,如下所示:
Process[] processList = Process.GetProcesses();
foreach (Process theProcess in processList)
{
string processName = theProcess.ProcessName;
string mainWindowTitle = theProcess.MainWindowTitle;
}
找到这个后,我就可以获取进程 ID,现在我想将此进程设为我的活动窗口。我该怎么做?
谢谢
【问题讨论】:
-
如果创建 .laccdb 是因为有人使用 Access 而不是您的应用程序打开了数据库,该怎么办?或者如果文件存在是因为打开它的应用程序在清理它之前崩溃了?我不认为这是一种可靠的工作方式。
-
好的,问题的关键是切换到我认为是打开的数据库,所以如果不是,它会抛出一个我可以处理的异常
-
结合下面 Eric 回答中的信息,以下链接帮助我完成了这项工作 - stackoverflow.com/questions/4566632/…