ADO.NET: не удается подключиться к файлу базы данных mdf - PullRequest
6 голосов
/ 25 декабря 2010

Я пишу приложение, которое использует базу данных SQL Server 2005.В строке подключения я указываю mdf-файл следующим образом:

connstr = @"Data Source=.\SQLEXPRESS; AttachDbFilename=" + fileLocation + "; Integrated Security=True; User Instance=True";

Когда я выполняю код:

public static void forceConnection()
{
    try
    {
        conn = new SqlConnection(connstr);
        conn.Open();
    }
    catch (Exception e)
    {
        MessageBox.Show(e.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    finally
    {
        if(conn != null)
            conn.Close();
    }
}

я получаю исключение:

Произошла ошибка, связанная с сетью или экземпляром, при установлении соединения с SQL Server.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске указанного сервера / экземпляра)

Этот код работает в XP, но не в Vista.Я попытался запустить Visual Studio в режиме администратора и переместил mdf-файл в папки «Данные пользователя», но ошибка не исчезла.

Любая помощь?

Ответы [ 3 ]

3 голосов
/ 25 декабря 2010

Можете ли вы подключиться к базе данных sql server в командной строке?Я хотел бы убедиться, что вы действительно можете подключиться в первую очередь.

Попробуйте открыть командную строку и введите sqlcmd -S .\SQLEXPRESS -d your_dbase

1 голос
/ 25 декабря 2010

Если у меня проблемы с mssql-connect с моим dotnet-sourcecode, я пытаюсь подключиться к базе данных другой программой. Я использую queryexpress , который также написан в dotnet. Если эта программа работает, то я знаю, что проблема в моем программном коде, иначе проблема в строке подключения, прокси, сети, sqlserver или правах пользователя.

0 голосов
/ 25 декабря 2010

У вас на самом деле установлен sqlexpress? он использует имя_компьютера \ sqlexpress или работает как экземпляр по умолчанию?

Вы должны проверить эти случаи.

и вы можете использовать фактическое имя машины \ имя экземпляра, если вы не используете экземпляр по умолчанию.

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