Как сохранить базу данных в папке установки без доступа к ней пользователя?(С #) - PullRequest
1 голос
/ 02 декабря 2011

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

РЕДАКТИРОВАТЬ: моя база данных может быть либо на SQL Server, MySql или Access, я не беспокоюсь, однако я бы хотел, чтобы клиент не загружать SQL Server илилюбые другие программы, чтобы иметь возможность использовать мою.

Ответы [ 4 ]

1 голос
/ 02 декабря 2011

Вы никогда не увидите файлы базы данных в установочных папках, потому что установочные папки предназначены для программ, а не для данных.Данные попадают в папки appdata, такие как «C: \ Documents and Settings \ User1 \ Application Data \ Company1 \ Application1» или «C: \ Users \ User1 \ AppData \ Company1 \ Application1» в зависимости от вашей ОС.

0 голосов
/ 02 декабря 2011

Я бы предложил сохранить вашу собственную базу данных в виде простого XML-файла (например, простой .NET DataSet, сохраненный в файл через DataSet.WriteXml), а затем применить к этому файлу свое собственное фиксированное шифрование.ключ для шифрования / дешифрования будет находиться внутри кода вашей программы и никогда не будет изменен.Храня ваши собственные данные в виде XML, вам не нужен клиент.В начале вашей программы прочитайте и расшифруйте ваш файл данных в памяти, затем сохраните и зашифруйте при необходимости.

0 голосов
/ 02 декабря 2011

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

Если они не обращают внимания на файлы базы данных, они им не нужны.Вот почему вы их не видите.

0 голосов
/ 02 декабря 2011

Вы можете поместить файл базы данных в скрытый режим, чтобы пользователь не мог видеть его до тех пор, пока у него нет опции Show Hidden Files true

Или вместо размещения файла базы данных вместе с exe вы можете поместитьв специальном каталоге приложений, например C:\users\username\appdata\yourapp\

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...