准备好的SQL语句和IDisposable

时间:2015-11-20 20:50:05

标签: c# database sqlite system.data.sqlite system.data

注意:这不是What does SqlCommand.Prepare() do and when should it be used?SQLite/C# Connection Pooling and Prepared Statement Confusion或其他堆栈溢出问题的重复。我不是问准备好的陈述是否适合我的用例。我问如何与IDisposable一起使用它们。 结束注释

我有一个使用大约100个SQL语句的c#程序。我每次需要时都在using块内创建一个SQLiteCommand:

string query = @"select ... ";
using (SQLiteCommand cmd = new SQLiteCommand(query, conn)) 
{
    cmd.Parameters.Add(new SQLiteParameter( ... ));
    using (SQLiteDataReader dr = cmd.ExecuteReader()) 
    {
        while (dr.Read()) {
        ...
        }
    }
}

我希望通过使用预准备语句来提高性能,以便每个语句都编译一次,并在程序的生命周期内重复使用。

我的困境是DbCommand实现了I Disposable,我看到的每个例子都显示命令在执行SQL语句后立即处理。

执行SQL语句后处理DbCommand是否可以?会有什么副作用?或者,如果我处理该命令,我该如何实现“一次执行多次编译”流程。

0 个答案:

没有答案