2

我有一个 C# 2010 WinForms 应用程序,在 .Net Framework 3.5 上运行。此应用程序在启动时会连接到与可执行文件位于同一文件夹中的 Access 2007 accdb 数据库。这是用于连接的代码:

    public static OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=LineWatchManager.accdb;Persist Security Info=True;Jet OLEDB:Database Password=<password here>");
    public static void CreateConnection()
    {
        con.Open();
    }

我遇到的问题是在客户端计算机(Windows 7)上,启动计算机后第一次启动程序时,与数据库的连接总是失败。之后,它连接没有任何问题。

我试图让程序在启动时尝试连接到数据库 3 次,但这无济于事,即使尝试之间有 500 毫秒。我的计算机(Windows 7 或 8)上没有这个问题。

经过大量的调试尝试和在线花费了很多时间,我找到的唯一相关文章是this . 遗憾的是没有解决方案,但由于这发生在不使用 Access 的人身上,我猜它要么是 .Net 的错,要么是 C# 的错。任何帮助将不胜感激!

编辑:客户端没有运行完整版本的 Access,而是运行此运行时

4

2 回答 2

2

试试这个connectionString,注意|DataDirectory|这将是你的应用程序的默认路径。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/LineWatchManager.accdb;Persist Security Info=True;Jet OLEDB:Database Password=<password here>
于 2013-02-17T12:29:49.623 回答
1

使用它来创建连接:

public static OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory| ...");

于 2013-02-17T12:30:34.237 回答