@Farmila

Как включить бд в exe и как ей потом пользоватся?

Очень хочется включить локальную бд в exeшник, но не очень понимается как. Есть вариант добавить её в resourses.resx , так же можно включить её библиотекой costura fody, но непонятно как потом из этих вариантов добратся до базы данных, ведь подключение в приложении идёт через ConnectionString в котором явно указан путь до файла
  • Вопрос задан
  • 276 просмотров
Решения вопроса 3
Isafu
@Isafu
Необходимо прописать относительный путь к бд и с помощью inno setup или подобных программ, носить в установочнике программы и саму бд, при установке вашего ПО будет разархивироваться и exe и бд.
Ответ написан
@rPman
Нужно решение, умеющее работать с базой данных в ресурсах exe-файла (я таких не знаю) или в оперативной памяти, в этом случае при запуске программы базу можно загрузить в память из ресурсов (где она хранится в виде просто набора байт без типа)

sqlite умеет открывать базу данных в оперативной памяти, соответственно храни дамп своей базы в ресурсах, вот пример на c++ как импортировать и экспортировать memory базу данных, правда он с файлом, но как я понимаю проблем тут не будет работать с техническими потоками на оперативной памяти с помощью Application.GetResourceStream
Ответ написан
Комментировать
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
однако хоть какую то инфу по типу бд, с какими умеете работать?
каков сценарий использования?
если бд как ресурс, то по идее только для чтения?
если c#, то есть много легвестных объектных бд, так же возможно вам подойдет хранение попросту словарей в json/bson?
для предварительно заготовленных справочников, может быть на порядки экономичнее по объемам и быстродействию. да и по простоте использования.

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

pps если вы освоили примеры с ms sql (ms sql exprees), вы все равно не можете включить ядро субд в экзешник. не тот случай. только sqlite или что еще более легкое
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы