Ошибка c, связанная с сетью или конкретным экземпляром, произошла при установлении соединения с SQL сервером при запуске программы на другом компьютере - PullRequest
0 голосов
/ 27 мая 2020

Мне нужна помощь в решении этой проблемы. Я создал установщик приложения с помощью MS Visual Studio Installer Projects и запустил его на другом устройстве. Не было версий LocalDB, установленных на моем компьютере (2016 и 2017) в предварительных требованиях , поэтому мне пришлось вручную загрузить SQL Server 2017 LocalDB на другой компьютер. После этого, когда я запустил программу, я получил следующую ошибку .

Файлы базы данных были автоматически помещены во время установки в папку Documents

Я изменил строку подключения следующим образом :

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

Путь к базе данных

Так мне кажется, что проблема не в строке подключения, а в чем дальше?

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Я обнаружил, что не могу проверить версию SQL Server LocalDB, установленную на втором компьютере, через командную строку с помощью команды sqllocaldb info MSSQLLocalDB (из-за ошибки).

Поэтому я решил воссоздайте экземпляр MSSQLLocalDB, используя следующие команды:

1) sqllocaldb d MSSQLLocalDB

2) sqllocaldb c MSSQLLocalDB

И после этого программа успешно подключилась к базе данных.

Надеюсь, эта информация кому-то поможет.

0 голосов
/ 27 мая 2020

Я делаю образец фиксированной проблемы для всего проекта при создании ny winforms & localdb

Вы можете создать 2 ConnectionString в App.config файл

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 при публикации приложения sh Publi sh Среда

Для второй строки подключения необходимо указать полный путь


Код

Для получения строки подключения в файле App.config вы можете использовать этот код

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