在Datareader中查询

时间:2010-04-08 09:23:52

标签: ado.net

在下面的代码中,

 using (SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    while (dr.Read())
                    {
                        _emailTemplate.EmailContent = dr["EMAILCONTENT"].ToString();
                        _emailTemplate.From = dr["EMAILFROM"].ToString();
                        _emailTemplate.Subject = dr["EMAILSUBJECT"].ToString();
                    }
                }

我理解CommandBehavior.CloseConnection将在datareader关闭时关闭连接对象。在上面的代码中,当我们使用SqlDataReader时,它会在处理之前关闭datareader吗?换句话说,如果我使用using语句,我需要手动关闭datareader吗?

1 个答案:

答案 0 :(得分:1)

不,您无需手动关闭阅读器。在'using'块的末尾,.NET调用项目上的Dispose()方法,如果它支持IDispoable接口。 SQLDataReader确实支持这个并且在调用dispose方法时自行关闭。这意味着在using块中调用dispose,它会为你关闭dataReader。

相关问题