Проверка входа в базу данных локального сервера VB.net

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

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
    Dim con As New SqlConnection
    Dim cmd As New SqlCommand
    Dim rd As SqlDataReader

    con.ConnectionString = "Data Source=|DataDirectory|\Database.mdf;Integrated Security=true"
    cmd.Connection = con
    con.Open()
    cmd.CommandText = "select AdminID password from Admin where AdminID = '" & txtAdminID.Text & "' and AdminPassowrd = '" & txtPassword.Text & "' "
    rd = cmd.ExecuteReader
    If rd.HasRows Then
        Administration.Show()
    Else

        MessageBox.Show("Please re-enter your login credentials")

    End If

Таблица, из которой я пытаюсь извлечь данные, существует, как вы можете сказать здесь: введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

Я не уверен, почему программа не может найти MDF, так как он находится в основном каталоге.

Любая помощь приветствуется. Спасибо!


person user3400168    schedule 18.04.2015    source источник
comment
Вы установили |DataDirectory|?   -  person Saagar Elias Jacky    schedule 18.04.2015
comment
Я исходил из того, что |DataDirectory| это корневая папка? Разве это не так? Спасибо.   -  person user3400168    schedule 18.04.2015


Ответы (2)


В вашем сообщении об ошибке говорится о SQL Server, поэтому проблема может заключаться в том, что вы используете не того провайдера для доступа к файлу MDF. Вы не указываете его, поэтому вы, вероятно, получаете поставщика oledb для SQL Server по умолчанию.

Попробуйте указать в строке подключения: Provider=Microsoft.ACE.OLEDB.12.0 или Provider=Microsoft.Jet.OLEDB.4.0

См. http://www.connectionstrings.com/access/ для получения дополнительной информации.

person Pascal    schedule 18.04.2015

Я заставил его работать.

con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
person user3400168    schedule 18.04.2015