Кто-нибудь может объяснить, как мы можем встроить ms access db в наше приложение winform, чтобы его можно было легко запускать на других машинах с помощью всего одного файла .EXE . Я много искал, но до сих пор не смог найти подходящего решения. Заранее спасибо.
Как мы можем сделать так, чтобы ms access db встраивался в приложение winform, чтобы сделать его переносимым
Ответы (1)
Если вы используете MDB, то (32-разрядная) база данных (JET) является частью Windows. Таким образом, для этого не должно быть никаких требований к настройке. Если база данных только читается, а не записывается, то вы можете добавить ее как ресурс в EXE, а при запуске приложения извлечь ресурс либо в каталог TEMP, либо, если он большой, и вы не против оставить кеширует во вложенную папку в данных локального приложения (CSIDL_LOCAL_APPDATA). Если вы сделаете последнее, то при следующем запуске приложение может проверить, существует ли уже действующий извлеченный MDB, и использовать его, если он существует. Вы можете сделать то же самое, если в базу данных будет производиться запись, но только для локального хранилища, и в этом случае связанная MDB будет служить в качестве «шаблона» базы данных.
Если вы используете Delphi или C++, я бы также предложил исследовать SQLite как возможную альтернативу JET, хотя, поскольку я предполагаю, что это C# (тег 'c' немного сбивает с толку), вы не сможете статически связать SQLite код, который не соответствует требованию автономного EXE.