【问题标题】:How to make winforms database application that run on clients computers如何制作在客户端计算机上运行的 winforms 数据库应用程序
【发布时间】:2019-05-09 14:44:18
【问题描述】:

我一直在尝试发布我的应用程序,以便可以将其安装在其他计算机上,但是在 VS 编辑器上尝试它并在其他计算机上运行它时,我总是以“SqlException”告终

为了清楚起见,我使用 SqlServer 创建了数据库,并将其附加到 VS 编辑器,直到现在一切顺利,应用程序在编辑器上运行,没有任何异常 但是为了使应用程序在另一台计算机上运行,​​我需要复制(SqlServer 目录中的 mdf 文件并将其粘贴到项目的 |datadirectory| 中),当然我更改了 connectionString dataSource 以指向 mdf 文件,这里异常开始上升

异常消息说:

尝试为文件附加自动命名的数据库 C:\Users\xXx\Desktop\Projects\Master Maint\Master 维护\bin\Debug\GMAO.mdf 失败。存在同名数据库, 或者指定的文件无法打开,或者它位于 UNC 共享上。

当我在连接字符串中添加Initial Catalog=test 时,异常消息变为:

"无法附加文件 'C:\Users\xXx\Desktop\Projects\Master Maint\Master Maint\bin\Debug\GMAO.mdf' 作为数据库'test'。”

PS 1:这不是权限问题,因为我从高级安装程序授予了对文件的完全访问权限

PS 2:如果有其他方法可以在另一台计算机上运行数据库应用程序,我正在听。

<connectionStrings>
    <add name="connString2" connectionString="Data Source=(localdb)\v11.0;AttachDbFilename=|DataDirectory|\GMAO.mdf ;Integrated Security=True"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

【问题讨论】:

  • 我建议在 LocalDB 上搜索并阅读它。
  • 如果是SQL Server,将连接字符串添加到配置文件(应该包括IP地址),然后让程序从配置文件中读取它。----除非它是LocalDB 如 Guido 所述
  • 它是一个 LocalDB,以 mdf 文件的形式附在项目中,甚至随项目一起安装,但正如我提到的,问题出在访问过程中 尝试为文件附加自动命名数据库失败
  • 对于任何可以帮助您的人,您将不得不发布更多代码。仅凭您所说的无法诊断。

标签: c# sql-server visual-studio advanced-installer


【解决方案1】:

谢谢大家,我没去删除问题因为可能其他人需要它,但我终于找到了答案

1 - 第一个错误是因为数据库文件未分类,已通过添加 Initial Catalog=test

解决

2 - 第二个数据库文件的名称与项目中使用的真实数据库相同,通过重命名文件解决了这个问题

3 - 第三个负责创建数据库的日志文件没有附加,通过将日志文件添加到目录来解决

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多