2014-01-31 6 views
-2

У меня есть приложение C# с базой данных MSSQL 2008R2. База данных находится в одном пользовательском состоянии. Я использовал ADO.NET для подключения к базе данных. Итак, я создаю SqlConnection и выполняю свою команду, используя его в C#.Ошибка подключения MS SQL

Как это:

using (var con = new SqlConnection(ConnectionString.ToString())) 
{ 
    using (var cmd = con.CreateCommand()) 
    { 
     con.Open(); 
     cmd.Connection = con; 
     cmd.CommandTimeout = CommandTimeoutSeconds; 
     cmd.CommandType = System.Data.CommandType.Text; 
     cmd.CommandText = sqlSelect; 
     try 
     { 
      SqlDataReader reader = cmd.ExecuteReader(); 
      while (reader.Read()) 
      { 
       columns.Add(reader[0].ToString()); 
      } 
     } 
     catch (SqlException ex) 
     { 
      logger.Error("Во время отработки запроса произошла ошибка. \nТекст ошибки: {0}.\nStackTrace: {1}.}", 
       ex.Message, ex.StackTrace); 
      throw ex; 
     } 
    } 
} 

Но есть исключение:. «Не удается открыть базу данных "db_name".., По просьбе входа в систему Логин не удалось Войти Сбой пользователя "ск"`

Почему это произошло? Как справиться с этим?

не строка ошибки подключения, я проверить это на каждом шагу.

используется только одна строка подключения для этого приложения и соединение в других местах кода. приложение, вставляющее данные из файла в 20 таблицах и дающее мне сообщение об ошибке на 15-й таблице, после того, как другой запуск ошибки приложения генерируется на 10-й таблице или 17-м и т. Д., Когда-то приложение работало без ошибок.

+2

Что это означает на английском языке: '' Не удается открыть базу данных "db_name", запрашиваемое имя входа. Не удалось выполнить вход. Ошибка входа пользователя "sa" .', пожалуйста, внесите изменения. – ekad

+0

"Не удается открыть базу данных «db_name», запрошенный логином. Ошибка входа в систему. Ошибка входа в систему для пользователя «sa». « –

+0

пароль для входа в систему« sa »неверен в строке подключения. –

ответ

0

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

+0

строка подключения не является ошибочной. Я использую его не один раз в этом проекте. эта ошибка генерируется в разных местах приложения. – FRoST86

0

Кажется, что вы пытаетесь подключиться к базе данных, используя недействительный Database-Login. Вы использовали SA Вход в строку соединения, вы уверены, что вы устанавливаете Mix-Mode (Пароль системного администратора/SA) при установке MSSQL Server2008?

В любом случае я предлагаю cerate новую базу данных. Если вы не знаете, как, по этой ссылке: http://technet.microsoft.com/en-us/library/aa337562.aspx

+0

нет, только одна строка подключения используется для этого приложения, а соединение в других местах кода является правильным. приложение, вставляющее данные из файла в 20 таблиц и дающее мне сообщение об ошибке на 15-й таблице, после того, как другой запуск ошибки приложения генерируется на 10-й или 17-й и т. д., когда-то приложение работает без ошибок. – FRoST86

+0

Так что ваша непредсказуемая ошибка! может быть связано с Command.TimeOut Каково максимальное количество записей, которые у вас есть в ваших таблицах? –

+0

3.000.000 записей. Я использую тайм-аут соединения и тайм-аут comand, установите равные 60 секунд. – FRoST86

0

Лучший способ создать строку подключения следующим образом

Шаг 1: Создайте текстовый файл (Mycon.txt), а затем переименовать расширение к (Mycon.udl).

Шаг 2: Теперь дважды щелкните файл данных Universal Data (Mycon.udl).

Шаг 3: Вкладка поставщика: выберите поставщика Microsoft OLEDB для SQL Server, Вкладка «Подключение»: введите сервер, имя пользователя & Пароль и тестовое соединение.

Шаг 4: Если тестовое соединение является успешным. нажмите «ОК» и закройте его.

Шаг5: Откройте файл Mycon.udl с помощью Блокнота. И скопируйте строку соединения.

Смежные вопросы