我正在尝试关闭数据库,然后删除数据库文件。执行以下程序后:
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),但我想我不明白如何停止使用该文件以便删除它。
答案 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 "";
}