Ошибка входа для пользователя 'sa'. в строке подключения

Я получаю следующую ошибку:

Ошибка входа для пользователя 'sa'

Когда я пытаюсь подключиться к серверу, устанавливая значение через строковую переменную:

private SqlConnection getDbConnection = new SqlConnection("Data Source="+dbname+";Initial Catalog="+catname+";User Id=sa;Password=sa;Integrated Security=false");

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

private SqlConnection getDbConnection = new SqlConnection("Data Source=Ali-pc\\;Initial Catalog=master;User Id=sa;Password=sa;Integrated Security=false");

person Jay Zee    schedule 09.03.2012    source источник
comment
Имя пользователя и пароль неверны?   -  person Micah Armantrout    schedule 09.03.2012
comment
Вы пытались отладить и убедиться, что значения действительно такие, как вы думаете?   -  person    schedule 09.03.2012
comment
Где вы устанавливаете переменные «dbname» и «catname»?   -  person sloth    schedule 09.03.2012
comment
Если вы установите точку останова на этой строке и наведете курсор на переменные, будут ли они такими же, как значения в строке чисто жесткого кода?   -  person Paulie Waulie    schedule 09.03.2012
comment
са? Вы знаете, что это действительно действительно плохая идея, верно? Даже для тестирования кода.   -  person Joel Coehoorn    schedule 09.03.2012
comment
Распечатайте проанализированную строку подключения и найдите разницу   -  person Alex K.    schedule 09.03.2012
comment
@Joel Мы используем sa для каждого запроса к базе данных в наших приложениях. Всегда. Каждый раз. Я так счастлив, что скоро покину эту компанию :-)   -  person sloth    schedule 09.03.2012
comment
@dkson, около половины компаний, в которых я работал, сделали это, пароли тоже в открытом виде;)   -  person Paulie Waulie    schedule 09.03.2012
comment
@Paulie И, очевидно, одинаковые логины/пароли для всех клиентов :)   -  person sloth    schedule 09.03.2012


Ответы (2)


поместите строку подключения в файл web.config, как показано ниже.

<connectionStrings>
<add name="Test" connectionString="data source=Harsh; Initial Catalog=Test ; user Id=sa; password=sa123;"/>
</connectionStrings>

Над «Test» указано имя строки подключения, вы можете написать имя своего источника данных. У меня жесткое, поэтому изменили его в соответствии с вашим. Укажите имя вашей базы данных в исходном каталоге.

А затем поместите этот код в свой код за событием загрузки страницы.

SqlConnection con = new  SqlConnection(ConfigurationManager.ConnectionStrings["Test"].ToString());

Это будет работать.

person Harsh    schedule 09.03.2012

Может быть, имя сервера и имя базы данных (в переменных dbname и catname) просто неверны?

Кстати, я бы рекомендовал использовать класс SqlConnectionStringBuilder.

var sb = new SqlConnectionStringBuilder() { InitialCatalog = catname,
                                            DataSource = dbname,
                                            UserID = "sa",
                                            Password = "sa" };

var dbConnection = new SqlConnection(sb.ConnectionString);
person sloth    schedule 09.03.2012
comment
нет, я уже проверил, поэтому я публикую эту проблему - person Jay Zee; 09.03.2012
comment
Вы сравнивали две строки подключения во время отладки? - person sloth; 09.03.2012