#vb.net #oledb
#vb.net #oledb
Вопрос:
Dim con As New OleDb.OleDbConnection
Sub connecttodatabase(ByVal fileselected As String)
Dim databasepassword
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source = " amp; fileselected
Try
con.Open()
Catch e As OleDb.OleDbException
If e.Message = "Not a valid password." Then
Console.WriteLine("Database has a password. Please enter password to continue.")
databasepassword = Console.ReadLine()
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source = " amp; fileselected amp; ";JetOLEDB:Database Password=" amp; databasepassword amp; ";"
con.Open()
End If
errorid = 1
Finally
End Try
End Sub
Ошибка, с которой я сталкиваюсь, возникает при втором завершении.Open () когда я пытаюсь подключиться к файлу базы данных .mdb, который я создал в access, функция корректно сообщает мне, что у меня есть пароль, но затем, как только я ввожу свой пароль, я получаю ошибку, указанную в заголовке, и я понятия не имею, почему. Буду признателен за любую помощь.
Ответ №1:
Попробуйте вместо этого следующее: Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = C: mydatabase.mdb; Идентификатор пользователя = admin; Пароль = YOURPASS;
Кроме того, какое исключение вы получаете при первом вызове для открытия базы данных? Возможно, это та же проблема: ISAM отсутствует. Попробуйте переустановить MDAC:
http://www.microsoft.com/downloads/en/details.aspx ?FamilyID=78cac895-efc2-4f8e-a9e0-3a1afbd5922e
Комментарии:
1. Исключение, которое я получаю при первом вызове, заключается в том, что пароль неверен, поэтому я предлагаю пользователю ввести свой пароль. Когда я меняю свою строку подключения на ту, которую вы предложили, вместо этого я получаю следующее исключение «Не удается запустить ваше приложение. Файл информации о рабочей группе отсутствует или открыт исключительно другим пользователем.». РЕДАКТИРОВАТЬ: Установка MDAC не имела никакого значения.
2. После небольшого чтения этот тип строки подключения НЕВЕРОЯТНО требователен, и малейшая опечатка выдает ошибку, которую вы получаете. Попробуйте использовать именно это, заменив параметры на свои (используйте точно такой же регистр, интервал и т.д. 🙂 Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = C:mydatabase.mdb;Jet OLEDB: Пароль базы данных =MyDbPassword;