使用后无法重命名SQLite数据库文件

时间:2010-01-08 15:13:18

标签: sqlite system.data.sqlite

我正在尝试在使用它之后重命名我的SQLite数据库文件,但是即使我的所有连接都关闭后,该文件似乎仍然被SQLite打开。

这是我正在做的一个例子:

using (DbConnection conn = new SQLiteConnection("Data Source=test.db"))
{
    conn.Open();
    DbCommand command = conn.CreateCommand();
    command.CommandText = "select id from test";
    command.ExecuteScalar();
}
File.Move("test.db", "test.db.test");

Move调用抛出IOException。这是我对此数据库文件的唯一连接。一旦应用程序结束,我可以手动移动文件而不会出现问题。我尝试了各种各样的事情,比如在连接字符串中显式设置Pooling=false,在连接处理之前手动调用Close,显式启动和提交事务,但这似乎都没有帮助。有没有办法强制SQLite关闭/释放数据库文件而不退出应用程序?

2 个答案:

答案 0 :(得分:0)

我认为你正在使用SQLite.Net?我刚试过你的代码,并且在Vista上的VS 2005中使用SQLite.Net 1.0.65没有问题。

答案 1 :(得分:0)

DBCommandIDisposable。也许您需要在其上调用Dispose或在using语句中创建它。