-1

我将 SQLite3 数据库用于小型系统。问题是当我尝试使用 IO 文件系统重命名 db 文件时,System.IO 返回一个异常,表明该文件正在被另一个进程使用,但是我已经使用 connection.Close() 方法关闭了连接。我搜索了这个主题,但没有找到任何对我有用的东西。有人请建议我释放 SQLite 连接的正确方法..

提前致谢

4

1 回答 1

1

我在 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
            }
        }
    }
}
于 2014-11-25T16:30:51.710 回答