Есть БД, в консольном приложении C# пытаюсь плодключиться к БД и считать содержимое таблицы следующим образом:
string cs= @"Data Source=.\SQLEXPRESS;Initial Catalog=ShopDB;Integrated Security=True;";
string command = "SELECT * FROM Customers";
DataTable customers = new DataTable();
using (SqlConnection connection = new SqlConnection(cs))
{
connection.Open();
SqlCommand cmd = new SqlCommand(command, connection);
SqlDataReader dr = cmd.ExecuteReader();
customers.Load(dr);
dr.Close();
}
При попытке открытия соединения получаю ошибку
System.Data.SqlClient.SqlException: 'Cannot open database "ShopDB" requested by the login. The login failed.
Login failed for user 'MicrosoftAccount\mail@yahoo.com'.'
Использую БД MS SQL Server Express 2016, ОС Windows 10, VS 2017. В БД Метод аутентификации выбран Windows Authentication. При попытке указать в строке подключения имя пользователя, которое отображается при подключении к БД (в неактивных полях) и пароль, который соответствует этому пользователю, появляется ошибка
System.Data.SqlClient.SqlException: 'Login failed for user 'DESCTOP-5HGPGMV\username'.'
Подскажите, пожалуйста, в чем ошибка.
В вашей строке подключения фигурирует Integrated Security=True. Это означает, что для подключения к SQL серверу будет использоваться логин пользователя, из-под которого запущена программа. Например, если программу запустит пользователь mydomain\Ivanov, то для подключения к MS SQL серверу будет использоваться логин mydomain\Ivanov, а если программу запустит mydomain\Petrov - то логин mydomain\Ivanov.
При попытке указать в строке подключения имя пользователя, которое отображается при подключении к БД (в неактивных полях) и пароль, который соответствует этому пользователю
Логин и пароль в строке подключения для этого режима вводить не надо!
Просто запустите sql server management studio и в Security - Logins убедитесь, что пользователь DESCTOP-5HGPGMV\username есть в списке плюс имеет достаточные права к БД вашего приложения.
Альтернативно, вы можете убрать Integrated security и вот тогда вам будет необходимо указать и логин и пароль от какой-либо учётки SQL Server.
Для общего понимания можете почитать вот эти вопросы на so:
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости