我知道我之前问了一个相关的问题。我只是又想到了另一个问题。
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
}
}
}
}
"有人认为:由于SqlDataReader的dr对象不像连接或命令对象那样是一个新对象,它只是一个指向cmd.ExecuteReader()方法的引用,所以我需要把读取器放在using语句块吗?(根据我的先前帖子,我理解任何使用IDisposable的对象都需要放在using语句块中,而SQLDataReader继承自IDisposable,所以我需要这样做。我的判断正确吗?)但我很困惑,因为它不是一个新对象,将一个仅是指向命令的引用指针释放会造成任何问题吗?谢谢。"