无法在sqlite中打开数据库文件(使用finisar.sqlite)

时间:2013-07-24 09:24:08

标签: c# sqlite

我在我的应用程序中使用带有 sqlite.net dll 的sqlite数据库。 命名空间是 Finisar.sqlite 使用事务将条目插入数据库时​​出现问题,它在打开的连接上抛出异常,因为“无法打开数据库文件”。

我谷歌它,但解决方案就像更改连接字符串。如果我遵循这个过程,那么finisar会将异常作为无效的params。

SQLiteConnection db = new SQLiteConnection(f_strConnStr);

db.Open();

**Valid parameters are:** 

Data Source=<database file>  (required)

Version=<version of SQLite (2 or 3)>            (default: 2)

New=True|False                  (default: False)

Compress=True|False                 (default: False)

UTF8Encoding=True|False             (default: False)

UTF16Encoding=True|False            (default: False)

Cache Size=<N>                  (default: 2000)

Synchronous=Full|Normal|Off             (default: Normal)

DateTimeFormat=ISO8601|Ticks|CurrentCulture     (default: ISO8601)

Compatibility=[old-date-format][,old-binary-format] (default: None)

我尝试过像连接字符串,日志模式=关闭等解决方案,但对我来说没有任何作用。即使我无法创建因参数无效而受密码保护的文件。

我不能添加除此参数以外的其他内容。 如果有人对此问题有解决方案,请帮助我们。

提前致谢。

1 个答案:

答案 0 :(得分:3)

所以有很多事情可能会出错:

  1. SQLite数据库所在的文件夹,您没有写入权限。
  2. 该数据库已由另一个SQLiteConnection打开。
  3. 连接字符串错误。我认为这个不太可能,因为它显然是一个变量,你正在拉动连接字符串,我不得不相信其他时候你想要使用相同字符串的数据。
  4. 要解决#2 ,您应始终访问您的数据,如下所示:

    using (SQLiteConnection c = new SQLiteConnection(f_strConnStr))
    {
        c.Open();
        ...
    }