【发布时间】:2011-03-24 03:22:15
【问题描述】:
我知道我之前问过一个相关问题。我只是有了另一个想法。
using (SqlConnection conn = new SqlConnection('blah blah'))
{
using(SqlCommand cmd = new SqlCommand(sqlStatement, conn))
{
conn.open();
// *** do I need to put this in using as well? ***
SqlDataReader dr = cmd.ExecuteReader()
{
While(dr.Read())
{
//read here
}
}
}
}
论据是:由于SqlDataReaderdr对象不是像连接或命令对象那样的新对象,它只是指向cmd.ExecuteReader()方法的引用,我需要把阅读器放在一个using。 (现在根据我之前的帖子,我的理解是任何使用IDisposable的对象都需要放在using中,而SQLDataReader继承自IDisposable,所以我需要放它。我是否正确根据我的判断?)我只是感到困惑,因为它不是一个新对象,在处理一个简单地作为命令的引用指针的对象时会导致任何问题吗?
非常感谢
【问题讨论】:
-
"cmd.ExecuteReader" 是一种方法参考。 “cmd.ExecuteReader()”(注意括号)是一个方法调用。
标签: c# dispose sqldatareader using-statement