Прежде всего, обязательно ознакомьтесь с ответом Среса .
Если вы не указали SQL Server в строке подключения присоединить вашу базу данных (с AttachDbFilename
, как в третьем примере), вы должны выполнить присоединение, как он сказал.
Относительно ваших трех примеров строки подключения: все они работают только при определенных обстоятельствах. Вы можете проверить connectionstrings.com .
Вот ваши три строки подключения, а также краткие пояснения их проблем:
Data Source=.\MSSQLEXPRESS;Initial Catalog=SL;Integrated Security=True
-> Используется текущий пользователь Windows, под которым работает ваше приложение. Таким образом, текущий пользователь Windows должен иметь права доступа к базе данных на компьютере клиента.
Data Source=.\MSSQLEXPRESS;Initial Catalog=SL;Persist Security Info=True;User ID=sa;Password=pass
-> При этом используется специальная учетная запись пользователя 'sa'. Для того чтобы это работало, вы должны убедиться, что выполнены следующие условия:
- Необходимо установить аутентификацию в смешанном режиме (если вы этого не сделаете, у вас будет только аутентификация Windows, а 'sa' - имя пользователя для аутентификации SQL Server)
- необходимо указать пароль 'sa' и, конечно, он должен быть таким же, как на компьютере разработчика.
Но это не лучшее решение в любом случае. 'sa' - это учетная запись администратора с полными разрешениями, и вам не следует использовать учетную запись администратора для доступа к SQL Server через ваше приложение.
Если вы действительно хотите использовать аутентификацию SQL Server (вместо аутентификации Windows), лучше создать новую учетную запись с минимальными необходимыми разрешениями, необходимыми вашему приложению.
Data Source=.\MSSQLEXPRESS; AttachDbFilename =C:\Database\SL.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True
-> та же проблема, что и с первой строкой соединения (текущий пользователь Windows должен иметь разрешения).
Кроме того, User Instance=True
должен быть включен в SQL Server.
Цитата connectionstrings.com :
Чтобы использовать функциональность User Instance, необходимо включить ее на
SQL Server. Это делается с помощью следующей команды:
sp_configure 'пользовательские экземпляры включены', '1'. Чтобы отключить
функциональность выполнить sp_configure 'пользовательские экземпляры включены', '0'.