如何关闭并释放本地数据库连接以便删除db文件?

时间:2017-01-10 23:21:54

标签: c# sqlite

我正在尝试关闭数据库,然后删除数据库文件。执行以下程序后:

File

我启动了一个方法:

string sql = @"SELECT * FROM comments WHERE name=@name";

var command = new SQLiteCommand(sql, m_dbConnection);
command.Parameters.Add(new SQLiteParameter("@name", name));

SQLiteDataReader reader = command.ExecuteReader();

if (reader.HasRows)
{
    reader.Read();
    return reader.GetString(1);
}
else 
    return "";

然而,后一个代码会生成m_dbConnection.Close(); if (System.IO.File.Exists("MyDatabase.sqlite")) System.IO.File.Delete("MyDatabase.sqlite");

  

该进程无法访问文件[filepath],因为它正由另一个进程使用。

错误消息似乎不言自明(我确实在主题上看this SO post),但我想我不明白如何停止使用该文件以便删除它。

1 个答案:

答案 0 :(得分:0)

始终使用using确保正确处理数据库对象:

using (var command = new SQLiteCommand(sql, m_dbConnection))
using (var reader = command.ExecuteReader())
{
    if (reader.HasRows)
    {
        reader.Read();
        return reader.GetString(1);
    }
    else 
        return "";
}