与NextResult()方法C#相反的是什么

时间:2016-10-15 00:11:52

标签: c# sqldatareader

我对存储过程有两个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();
}

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:3)

你不能。由于大多数流API SqlReader不支持返回上一个元素。一般情况下,你要问的是返回从网络读取一些字节,这是不可能的。

您会在Stream(例如NetworkStream)以及IEnumerable派生的许多对象中找到类似的行为。

修复:如果您需要返回之前的结果,请在阅读或再次查询时将其保存在本地。