Если у вас есть два компьютера (скажем, их имена компьютеров «pc_a» и «pc_b», которые объединены в сеть, и программа работает на компьютере «pc_a», а база данных находится на компьютере «pc_b»), то ваша строка подключения необходимо указать имя компьютера для компьютера "pc_b".
Вы можете указать имя компьютера, даже если это локальный компьютер, поэтому приведенный ниже код будет работать, если программа работает на том же компьютере, что и база данных, или если программа работает на одном компьютере, а база данных - на другом. до тех пор, пока две машины объединены в сеть и учетная запись, под которой вы запускаете программу, имеет доступ к машине, экземпляру и базе данных.
Обратите внимание, что в приведенном ниже примере имя экземпляра по умолчанию (MSSQLSERVER) использовалось при установке SQL. Если имя экземпляра БД является именем по умолчанию, вы не должны явно указывать имя экземпляра (вы получите ошибку, которую вы показали, если вы это сделаете). Единственный раз, когда вы предоставляете имя экземпляра в явном виде, это когда оно не является именем экземпляра по умолчанию. Приведенный ниже код может обрабатывать любой сценарий (установив для переменной dbInstanceName значение "" или имя экземпляра, например "\ SQLEXPRESS"). Смотри С.О. SQL Server: Как найти все имена экземпляров localdb . Если есть сомнения, попробуйте пустое имя экземпляра и имя, которое вы считаете именем экземпляра, чтобы увидеть, что работает.
string databaseMachineName = "pc_b";
string databaseInstanceName = "";
string dbName = "stocksDb";
using (SqlConnection sqlConnection = new SqlConnection("Data Source=" + databaseMachineName + databaseInstanceName + "; Initial Catalog=" + dbName + "; Integrated Security=True;Connection Timeout=10"))
{
.
.
.
}