即使在关闭该特定文件的连接后,也不会删除/重命名SQLite .db文件

时间:2014-11-25 16:26:04

标签: c# sqlite system.io.file

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

先谢谢

1 个答案:

答案 0 :(得分: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
            }
        }
    }
}