当前位置:首页 > 数据库 > 其他数据库

sqlite:简单执行一个查询,数据库文件就被锁(无法删除),怎么解决

优良自学吧提供sqlite:简单执行一个查询,数据库文件就被锁(无法删除),怎么解决,sqlite:简单执行一个查询,数据库文件就被锁(无法删除),如何解决?我需要删除sqlite的数据库文件,但哪怕只是简单执行一个查询,数据库文件就被锁(无法删除),如何解决? 以下为执行的步骤: 使用的是:System.Data.SQLite.dll&n

sqlite:简单执行一个查询,数据库文件就被锁(无法删除),如何解决?
我需要删除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.

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢