我正在尝试在使用完 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 在不退出应用程序的情况下关闭/释放数据库文件?