SqlDataReader:
数据读取器的Close()方法会填充所有命令的输出参数,还会设置RecordsAffectted属性。
由于Close()方法还会执行数据读取器的其他任务,因为成功关闭读取器的代价较高,尤其对于高耗时的复杂查询。我们不应放过任何一点改善性能的机会。在这种情况下,由于返回值和受影响的记录数不是非常重要,我们可以调用与SqlCommand对象关联的Cancel()方法,而不关闭读取器。Cancel()会关闭读取器。即便如此,我们仍需负责正确地关闭底层连接。
SqlDataReader:
数据读取器的Close()方法会填充所有命令的输出参数,还会设置RecordsAffectted属性。
由于Close()方法还会执行数据读取器的其他任务,因为成功关闭读取器的代价较高,尤其对于高耗时的复杂查询。我们不应放过任何一点改善性能的机会。在这种情况下,由于返回值和受影响的记录数不是非常重要,我们可以调用与SqlCommand对象关联的Cancel()方法,而不关闭读取器。Cancel()会关闭读取器。即便如此,我们仍需负责正确地关闭底层连接。