【发布时间】:2013-12-25 06:41:24
【问题描述】:
我开发了一个运行良好的应用程序 Windows 8 上(在其他 Windows 操作系统上从未遇到过此特定问题)尝试写入数据库时出现问题
System.Data.SQLite.SQLiteException: Attempt to write a read-only database
我在 Windows 8 电脑上创建了数据库文件,例如:
Try
If (Not File.Exists(System.Environment.CurrentDirectory & "\MY_DB.db")) Then
Dim conn = New SQLite.SQLiteConnection("Version=3;New=True;Compress=False;Read Only=False;Data Source=" & System.Environment.CurrentDirectory & "\MY_DB.db")
conn.Open()
'...DO STUFF
conn.Close()
conn.Dispose()
conn = Nothing
End If
Catch ex As Exception
'Throw ex
Return False
End Try
但是没有用。
所以基本上我已经尝试过了:
- 在创建 db 文件时添加了
Read Only=False但不起作用。 - 数据库所在的文件夹必须具有写入权限,以及实际的数据库文件。这样做了,但没有用(在 Windows 7 上看起来像 )。
如何使数据库可写?
【问题讨论】:
-
我也遇到了同样的问题,是文件夹权限问题。您是否尝试向“所有人”组授予修改和写入权限?
-
为什么通过 System.Environment.CurrentDirectory 访问数据库?如果用户打开文件对话框(将当前目录更改为选择),这将不起作用。 db 应该放在应用程序数据中,而不是放在程序中。
-
实际上,数据库只是用于日志问题,这是存在的原因,但是当尝试编写任何事件时,我会收到此错误...
标签: c# database vb.net sqlite windows-8.1