c# - System.Data.SQLite.SQLiteException 尝试在 Windows 8 上写入只读数据库

标签 c# database vb.net sqlite windows-8.1

我开发了一个运行良好 <= Windows 7 的应用程序。它使用带有 VB 和 C# 的 SQLlite 数据库。但是在 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

但是没用。

所以基本上我已经尝试过:

  1. 在创建 db 文件时添加了 Read Only=False 但没有用。
  2. 数据库所在的文件夹必须具有写入权限,以及实际的数据库文件。这样做了,但没有用(在 Windows 7 上看起来像 enter image description here )。

我该怎么做才能使数据库可写?

最佳答案

我不知道你打电话时的当前目录是什么,但我肯定会把我的数据库放在一个文件夹中,每个用户在设计上都具有读/写权限。

为什么不使用 Environment.SpecialFolder 代表的文件夹?枚举?

你可以把你的代码改成这样

 Try
      Dim appFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
      appFolder = Path.Combine(appFolder, "MyAppDatabaseFolder")
      If Not Directory.Exists(appFolder) Then
           Directory.CreateDirectory(appFolder)
      End If
      Dim myDB = Path.Combine(appFolder, "MY_DB.db")
      If (Not File.Exists(myDB)) Then
          .....
      End If
 Catch ex As Exception
      'Throw ex
      Return False
 End Try

关于c# - System.Data.SQLite.SQLiteException 尝试在 Windows 8 上写入只读数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20764269/

相关文章:

c# - HttpModule 未与 Visual Studio 一起运行

mysql - 使用用户名和密码凭据创建数据库 codeigniter

php - 如果在另一行中指定,则MySQL选择行

.net - 编写文本文件

c# - 我应该将用户配置文件信息存储在缓存还是 session 中?

c# - 需要有关单游戏屏幕分辨率和交集的帮助

c# - 我们可以在没有 COM 的情况下在 .NET 中使用 TypeIdentifierAttribute 吗?

vb.net - 使用 oledb 从 csv/txt 文件检索数据时出现 "is not a valid name"错误

javascript - 在asp.net mvc 4.0(Angular js)中使用多文件控件上传多个图像

mysql - 数据库设计 - 通用关系? (关系 ID,关系表)