Задача: написать программу с локальной БД. Важно то, чтобы программа была полностью переносима с одной машины на другую. Никаких дополнительных серверов для поддержки БД на рабочую машину не должно быть установлено. При решении этой задачи я выбрал 3 варианта и в каждой возникли проблемы.
Работаю на MS Visual C# 2008 Express Edition. И так:
1) Sql server CE — здесь пошел на компромис, потому что надо будет установить сервер sql CE.
Проблема: при портировании программа не находит файл с БД. Приходится на отдельно взятой машине пересобирать программу.
Вопрос: как зарегестрировать в программе БД, чтобы независимо от того, где запускается программа, она находила бы файл БД в корневой папке программы?
2) SQLite
Проблема: в данном решении, при добавлении источника данных в программу (add new data source), после выбора провайдера SQLite Database File, выходит окно в котором надо пропистаь ConnectionString. Но что бы туда не было бы написано, программа всегда выдает ошибку: "Could not load file or assembly 'Microsoft.VisualStudio.Data, Version=8.0.0.0, Culture=neutral, PublicLeyToken=//тут 16й код//' or one of its dependencies. The located assembly's manifest defenition does not match the assembly reference. (Exception from HRESULT: 0x80131040)". При проверки соединения (Test Connection) все проходит успешно.
Вопрос: Как решить эту задачу, что я сделал не так?!
3) FireBird — сам север установил. Работает так, как надо. НО
Проблема: при установки провайдера IBProvider (и профессиональну версию и free версию), он не отображается при добавлении источника данных в программу (add new data source). При выборе провайдеров, он банально отсуствует в списке.
Вопрос: что надо сделать чтобы установить IBProvider правильно, или посоветуйте другой провайдер для FireBird под C#. В общем надо связать БД FireBird с программой.
ЗЫ возможно, мои вопросы просты и глупы, но начал работать под C# недавно. Если будете посылать меня читать маны и гайды, то будьте добры, давайте конкретные ссылки. Спасибо!