DBCommand使用块

时间:2015-07-07 11:46:02

标签: using dbcommand

我有以下代码:

using (MySqlConnection conn = new MySqlConnection(connStr))
{
    conn.Open();

    cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM Events";
    cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();
}

通过阅读本网站上的一些文章,建议DbCommand应该在一个使用块中,但是,我不明白为什么需要它。 Connection已关闭,那么DbCommand持有什么需要使用块? 如果一个类继承自IDisposable,必须使用using块或手动调用Dispose,是否真的如此?

我在上面的代码中运行了一个包含100个线程的模拟器,并且在DbCommand上使用了带有使用块的代码,我发现内存使用没有真正的差异。

1 个答案:

答案 0 :(得分:0)

DbCommand是抽象的,并不预先假定特定于供应商的子类将包含哪些本机资源,以及它们应以何种顺序发布。 using块的正确嵌套似乎是一种合理的隐式编码约定。

相关问题