Не удается подключиться к серверу базы данных - PullRequest
4 голосов
/ 11 мая 2011

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

    <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 \ username \ Local Settings \ Application Data \ Microsoft \ Microsoft SQL Server \ SQLEXPRESS, но это не работал для меня ..

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

1 Ответ

2 голосов
/ 11 мая 2011

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

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

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...