我对存储过程有两个SELECT
个查询。我找到了使用NextResult()
方法转到下一个结果的方法但是,如果我想转到prevoius结果集会怎样?
我想这样做,因为我正在使用此方法检索列的名称:
var columnNames = Enumerable.Range(0, reader.FieldCount).Select(reader.GetName).ToList();
因此,对于下一个结果集,我检查是否有下一个结果:
if (reader.NextResult())
{
var columnNamesB = Enumerable.Range(0, reader.FieldCount).Select(reader.GetName).ToList();
}
有办法做到这一点吗?
答案 0 :(得分:3)
你不能。由于大多数流API SqlReader不支持返回上一个元素。一般情况下,你要问的是返回从网络读取一些字节,这是不可能的。
您会在Stream
(例如NetworkStream
)以及IEnumerable
派生的许多对象中找到类似的行为。
修复:如果您需要返回之前的结果,请在阅读或再次查询时将其保存在本地。