1

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

我用谷歌搜索,但解决方案就像更改连接字符串。如果我遵循该过程,那么 Finisar 会给我异常作为无效参数。

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)

我尝试了池连接字符串、日志模式 = 关闭等解决方案,但对我没有任何作用。由于参数无效,即使我也无法创建受密码保护的文件。

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

提前致谢。

4

1 回答 1

3

因此,这里可能会出现许多问题:

  1. SQLite 数据库所在的文件夹,您没有写入权限。
  2. 该数据库已被另一个打开SQLiteConnection
  3. 连接字符串错误。我认为这不太可能,因为它显然是您从中提取连接字符串的变量,而且我不得不相信其他时候您想要使用相同字符串的数据。

要补救#2,您应该始终像这样访问您的数据:

using (SQLiteConnection c = new SQLiteConnection(f_strConnStr))
{
    c.Open();
    ...
}
于 2013-07-24T09:34:59.233 回答