构建 C#.Net 4.0 应用程序后的数据库路径错误

Posted

技术标签:

【中文标题】构建 C#.Net 4.0 应用程序后的数据库路径错误【英文标题】:Database path error after building C#.Net 4.0 application 【发布时间】:2012-11-09 15:15:10 【问题描述】:

我正在使用 .Net 4.0Access 数据库在 Visual Studio 2010 中构建应用程序。

我已经指定了我的数据库的现有路径,即D:/project/record.accdb。构建应用程序后,当我在自己的计算机上安装并运行它时,它给了我一个数据库路径错误。

我的应用程序在单击 F5(调试)时工作正常,但它显示错误

“找不到路径。”

我使用以下步骤构建了我的项目:

    构建 构建“项目名称” 使用 CD/DVD 进行安装 完成

我该如何解决这个问题?

【问题讨论】:

我们需要更多信息。错误到底说了什么?您可以发布打开它的代码吗?您是否在自己的计算机上安装了所需的 MSSQL 库? @MikeWebb for Access 数据库你不需要 MSSQL 库 @Stefan P - 如果他在他的程序中专门使用 MSSQL 库,他不需要它们吗?从他的帖子看来,这就是他正在使用的。 @Stefan P - 好的,nvmd。看起来这不是问题。 对不起 Stefan P 先生。我已经编辑了我的问题,它之前是 MSSQL。 【参考方案1】:

听起来,它在您的开发 PC 上运行良好,但在您想要将其部署到的其他机器上却没有。

检查您是否在另一台电脑(没有开发工具的电脑)上安装了 Microsoft Access。 安装 Access 后重复测试。


更新: 你最近写信给我说这条路行不通。尝试以下方法来创建有效的数据源字符串:

    在桌面上,创建一个新的空文本文档(右键单击,然后选择新建>文本文档) 重命名该文档,使其具有扩展名.UDL,例如Access.UDL 双击文件。 “数据链接属性”打开。 转到第一个选项卡(提供程序),选择“Microsoft Office XX.X Access Database Engine OLE DB Provider”(其中 XX.X 是您正在使用的 Office 版本) 转到第二个选项卡(连接),在 “1.输入数据源和/或数据位置”您指定 Access 数据库的完整路径,例如C:\Documents and Settings\All Users\My Documents\Database1.accdb 单击“测试连接”按钮以确保连接成功。 点击“确定”关闭对话框。

如果您之后使用 NOTEPAD 打开 UDL 文件(在我们的示例 Access.UDL 中),您会看到正确的数据源字符串:

[oledb]

;此行之后的所有内容都是 OLE DB 初始化字符串

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\All Users\My Documents\Database1.accdb;Persist Security Info=False

您可以直接在 C# 代码中使用此字符串,也可以将其存储在 app.config 文件中并加载。如果路径应该是动态的,您可以执行以下操作(以下示例使用硬编码的数据源字符串):

var strDS=string.Format(
    "Data Source=0\Database1.accdb;Persist Security Info=False", strPath);

这会将存储在变量strPath 中的路径插入到数据源字符串strDS 中。如前所述,您还可以从 app.config 加载此字符串。

【讨论】:

只有路径错误。有没有办法在连接字符串中给出路径,该路径将在部署它的任何 pc 上匹配

以上是关于构建 C#.Net 4.0 应用程序后的数据库路径错误的主要内容,如果未能解决你的问题,请参考以下文章

CI 服务器上的 .NET 4.0 构建问题

Windows server 2008 .net 4.0环境的安装

为啥 .Net 4.0 构建客户端 DataContracts 会导致 .Net 4.5 应用程序中的 MethodAccessException?

我找不到任何使用 Windows 窗体控件和(或)Infragistics 构建的 .NET 4.0 应用程序

Xamarin for Visual Studio下载后的文件路径

C#.NET 4.0 - HttpWebRequest.GetRepsonse() 无法访问 Web 服务