在另一台计算机上启动程序时建立与 SQL 服务器的连接时出现与网络相关或特定于实例的错误

A network-related or instance-specific error occurred while establishing a connection to SQL Server when starting the program on another computer

我需要帮助解决这个问题。我使用 MS Visual Studio Installer Projects 创建了应用程序安装程序,并在另一台设备上 运行 创建了它。 prerequisites, so I had to download the SQL Server 2017 LocalDB on another computer manually. After that, when I started the program I received the following error.

中我的计算机(2016 和 2017)上没有安装任何版本的 LocalDB

数据库文件在安装过程中自动放置在文件夹 Documents 中

我更改了连接字符串如下:

string dbPathMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string dbPath = Path.Combine(dbPathMyDoc, "myprojectAppData"); 
AppDomain.CurrentDomain.SetData("DataDirectory", dbPath);

Database path

所以在我看来问题不是连接字符串,而是什么?

我在创建 ny 时为所有项目制作示例修复问题 winforms & localdb

您可以在 App.config 文件

中创建 2 个 ConnectionString

App.config

<add name="DevConnectionString"
      connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" /> <!--  *1* Use when publish project--> 

<!--<add name="AppConnectionString"
        connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='E:\My Projects\MyDatabase.mdf';Integrated Security=True"
        providerName="System.Data.SqlClient" />-->
<!--*2* Use for development-->
  • 需要开发系统时先用开发环境
  • 应用发布时使用二次CS 发布环境

For second connection-string must write full path


代码

要获取 App.config 文件 中的连接字符串,您可以使用此代码

var conStr = ConfigurationManager.ConnectionStrings["DevConnectionString"].ConnectionString;

我发现我无法通过命令提示符使用命令sqllocaldb info MSSQLLocalDB检查安装在第二台计算机上的SQL Server LocalDB的版本(因为出错)。

所以我决定使用以下命令重新创建 MSSQLLocalDB 实例:

1) sqllocaldb d MSSQLLocalDB

2) sqllocaldb c MSSQLLocalDB

然后程序成功连接到数据库。

我希望这些信息对某人有所帮助。