堆栈跟踪显示 ExecuteReader 是 ExecuteScalar 的底层方法。在挖掘相关的命令行为时,我发现下面的帖子 - 说明命令行为.default 由读者使用。
ExecuteScalar() 比 ExecuteReader() 有什么优势吗?
我知道始终可以使用 datareader.close()、datareader.dispose() 来关闭和显式处理连接——提供,使用 ExecuteReader(commandbehaviour.Closeconnection)。另一方面,ExecuteReader(CommandBehaviour.Default) 保持底层连接打开,即使数据读取器对象已关闭和/或处置。所以我的问题是,如果 executescalar 使用默认行为,我如何确保在检索到标量值后关闭底层连接?