我将 SQLite3 数据库用于小型系统。问题是当我尝试使用 IO 文件系统重命名 db 文件时,System.IO 返回一个异常,表明该文件正在被另一个进程使用,但是我已经使用 connection.Close() 方法关闭了连接。我搜索了这个主题,但没有找到任何对我有用的东西。有人请建议我释放 SQLite 连接的正确方法..
提前致谢
我将 SQLite3 数据库用于小型系统。问题是当我尝试使用 IO 文件系统重命名 db 文件时,System.IO 返回一个异常,表明该文件正在被另一个进程使用,但是我已经使用 connection.Close() 方法关闭了连接。我搜索了这个主题,但没有找到任何对我有用的东西。有人请建议我释放 SQLite 连接的正确方法..
提前致谢
我在 SQLite 编程中学到的一件事是关闭连接根本不够好。您需要将所有内容包装在一个using
块中。确保你的SQLiteConnection
对象被包裹在一个using
块中,你的SQLiteCommand
被包裹在一个using
块中,你的SQLiteDataReader
被包裹在一个using
块中。您的代码应类似于以下内容:
using (var connection = new SQLiteConnection())
{
connection.ConnectionString = connectionString;
using (var command = new SQLiteCommand())
{
connection.Open();
command.CommandType = CommandType.Text;
command.CommandText = sql;
command.Connection = connection;
using (SQLiteDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
// Do something
}
}
}
}