无法写入数据库

时间:2011-06-03 12:05:39

标签: c# winforms security sqlite readonly

你好 我开发了一个使用SQLlite数据库的应用程序,但在进行安装项目和安装后,我在写入时遇到异常

System.Data.SQLite.SQLiteException: Attempt to write a read-only database

问题是什么?

在visual studio开发时工作正常

修改 我添加了用户Everyone并将其分配给放置数据库的文件夹的所有权限。该文件夹是由安装程序创建的,现在它可以正常工作但是我应该怎么做以避免这种情况..........因为这个应用程序将被部署,他们没有太多的计算机知识来手动执行此操作

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

在链接论坛中,常见的根本原因是权限问题。

http://sqlite.phxsoftware.com/forums/p/864/7498.aspx

<强>更新

为什么不加密sqlite数据库

Encrypt SQLite database in C#

答案 2 :(得分:1)

数据库不应与exe文件位于同一文件夹中。出于安全原因,exe文件(即程序文件)的位置受到保护,修改权限不是可行的方法。

您应该将需要写入的数据放在用户数据区域或所有用户的数据区域中。

您可以使用SHGetSpecialFolderPath

找到此文件夹