2011-05-11 2 views
4

У меня возникла проблема с подключением к базе данных. Я начал с нового пустого решения, затем добавил проект библиотеки WCF и, наконец, не в последнюю очередь веб-сайт (сервис) WCF. На веб-сайте я добавил ссылку на библиотеку, где у меня есть интерфейс (контракт данных), класс, который реализует интерфейс и dataclasses. Я пытаюсь подключиться к базе данных на сервере и попытаться получить оттуда некоторые данные. Таким образом, строка подключения выглядит следующим образом:Не удается подключиться к серверу базы данных

<add name="myConnectionString" connectionString="Data Source=MyServer; Initial Catalog=MyDatabase; User Id=me; Password=me123;" providerName="System.Data.SqlClient" /> 

и это, как я пытаюсь соединиться с базой данных:

public List<string> GetEngagements(string id) 
    { 
     string sql = "SELECT myColumn FROM myTable WHERE Id = '" + id + "'"; 
     string connString = string.Empty; 
     SqlConnection connDB; 
     connString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 
     connDB = new SqlConnection(connString); 
     SqlCommand command = new SqlCommand(sql, connDB); 
     connDB.Open(); 
     SqlDataReader rdr = command.ExecuteReader(); 
     List<string> numbers = new List<string>(); 

     while (rdr.Read()) 
     { 
      numbers.Add(rdr[0].ToString()); 
     } 
     rdr.Close(); 

     return numbers; 
    } 

Я получаю исключение на connDB.Open(). Сообщение об исключении: Не удалось создать экземпляр пользователя SQL Server из-за сбоя в запуске процесса для экземпляра пользователя. Соединение будет закрыто.

Я получаю это сообщение в течение 2 дней, я много искал и удалил каталог C: \ Documents and Settings \ имя_пользователя \ Local Settings \ Application Data \ Microsoft \ Microsoft SQL Server \ SQLEXPRESS, но это не сработало для меня ..

Любое решение ???? Помогите пожалуйста

+0

Если вы зашли в панель управления> adminsitrative tools> services, вы должны увидеть свой SQL-сервер Express. Это началось? иногда это просто что-то простое, все хорошее удовольствие :) –

ответ

2

Сообщение об ошибке:

Не удалось сформировать пользовательский экземпляр в SQL Server из-за сбоя в запуске процесса для экземпляра пользователя.

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

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

Я также предполагаю, что вы используете SqlExpress, а не полную версию.

В этом случае ваша строка подключения неверна. Это должно выглядеть следующим образом:

"Data Source=.\SQLEXPRESS; 
AttachDbFilename=fileOnDisk.mdf; 
Integrated Security=True; 
User Instance=True;" 

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

Вам не обязательно использовать пользовательские настройки - вы можете установить User Instance=False или просто оставьте это. Затем, как только приложение установит соединение, вы можете подключить другие инструменты к экземпляру сервера и самостоятельно подключиться к базе данных.

+0

Спасибо, что помогли мне очень близко подойти к ответу, который я ищу ... – NewB

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