我需要删除sqlite的数据库文件,但哪怕只是简单执行一个查询,数据库文件就被锁(无法删除),如何解决?
以下为执行的步骤:
使用的是:System.Data.SQLite.dll version 1.0.82.0 and SQLite.Interop.dll
1.关掉IIS(彻底释放连接,这时数据库文件是可以删除的)
2.然后再执行下面的语句:
Dim cmd As New SQLiteCommand()
Dim conn As New SQLiteConnection(cm.sqlco)
cmd.CommandText = "select * from dept"
cmd.Connection = conn
Dim ds As New DataSet()
Dim adapter As New SQLiteDataAdapter()
adapter.SelectCommand = cmd
adapter.Fill(ds)
conn.Close()
conn.Dispose()
3.最后,再删除数据库,还是出现数据库锁住的提示:
--操作无法完成,因为文件已经在IIS Worker Process中打开。
------解决思路----------------------
参考:http://www.16kan.com/question/detail/317573.html
我也遇到过这个问题,
c#中,如果ExecuteNonQuery后不立刻关闭SQLiteCommand,就会锁定文件
估计Fill也是一样
建议把SQLiteCommand放在Using里面试试,如:
using(SQLiteCommand cmd = conn.CreateCommand())
{
...
adapter.Fill(ds);
}
VB不知道怎么写,你研究下
------解决思路----------------------
楼上的建议很好.
针对cmd, conn都用using.