ilostmyid2 Ответов: 3

951015-как подключиться к базе данных access через C#?


Я создаю файл базы данных access с помощью Microsoft Access 2007. Я использую Visual Studio 2010 для написания программы, которая нуждается в базе данных. Я хочу использовать этот файл в качестве базы данных. Я думаю, что это самый простой способ написать быструю программу для хранения некоторых данных и управления ими. Разве я не прав?
Затем в окне Проводника сервера Я выбираю добавить соединение... из контекстного меню подключения к данным. Затем я выбираю файл базы данных Microsoft Access в появившемся окне и нажимаю кнопку Продолжить. Я просматриваю файл и нажимаю на кнопку ОК. Это ошибки:

Сообщение об ошибке отсутствует, код результата: E_UNEXPECTED(0x8000FFFF)

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

Что я уже пробовал:

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

3 Ответов

Рейтинг:
1

OriginalGriff

Есть довольно много причин, почему это может быть проблемой.
Начните с очевидного: доступен ли файл всем пользователям? Вполне возможно, что мастер подключения не использует Ваш идентификатор пользователя для доступа к файлу, поэтому, если файл или папка, в которой он находится, не имеют необходимых прав доступа для всех пользователей, он может легко потерпеть неудачу.
После этого проверьте тип движка БД, который вы установили для подключения к файлам доступа: ACE или JET. JET-это более старая версия, и она недоступна в 64-битной версии - так что опять же вы можете получить сбой подключения там, если код, пытающийся подключиться, 64-битный или "любой процессор". но ... сама Visual Studio - это 32-битное приложение, поэтому она не может использовать 64-битные драйверы напрямую - так что если тестер соединений на самом деле является частью VS, он может потерпеть неудачу, потому что движок БД 64-битный и он не может запустить его!

В принципе, мы не можем сказать вам: "сделайте это, и это будет хорошо", - но если вы получите больше горя, когда посмотрите на эти вещи, попробуйте изменить существующую строку подключения БД и использовать ее в объекте OleDbConnection в вашем коде: Строки подключения доступа - ConnectionStrings.com[^] вполне может помочь.


ilostmyid2

Обратите внимание, что я все еще не собираюсь обращаться к базе данных изнутри программы. Ни одна программа до сих пор не написана.
Что касается 64-битных проблем, то это неприменимо. Я использую Windows XP, и она 32-битная по архитектуре. Таким образом, проблема доступа также не применима.
О двигателе БД. Я думал, что ничего другого не требуется, когда я использую файл доступа в качестве своей базы данных. Когда VS имеет такой диалог для подключения к файлу доступа в качестве базы данных, он должен распознавать базу данных непосредственно без использования какого-либо движка. Я думал, что все соединения с таким файлом должны быть реализованы внутренне. Если я ошибаюсь, пожалуйста, дайте мне знать, что именно я должен сделать. Что такое эйс? Должен ли я установить что-то другое, кроме Access и VS?

Рейтинг:
0

Wendelius

Я бы не подумал, что это произошло потому, что пользователь не определен. Насколько я знаю, 0x8000FFFF-это катастрофический сбой, поэтому по какой-то причине соединение не может быть установлено.

Я бы проверил, правильно ли установлен поставщик OleDb и можете ли вы подключиться к базе данных из кода с помощью Класса Oledbconnection (Системы.Данных.Для oledb)[^]


ilostmyid2

все еще не в программировании, чтобы использовать класс.

Wendelius

Я понимаю, что вы пытаетесь использовать Visual Studio для подключения, но чтобы получить более подробную информацию о проблеме, я предлагаю написать короткий, простой код и попытаться подключиться к базе данных Access с помощью кода. Это говорит нам, может ли соединение быть успешным или нет, и если проблема заключается в Visual Studio или, например, в настройке OleDb.

Рейтинг:
0

#realJSOP

Я предоставил класс в своем решении этого ответа:

Как запустить доступ из WS 2012 и IIS 8 с помощью ASP.NET[^]


ilostmyid2

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

#realJSOP

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

ilostmyid2

О боже!
я сменил Windows на 7 с тем же успехом! кажется, что-то не так в XP

ilostmyid2

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