c# - 在 C# 中多次读取 SQLDataReader?

标签 c# sql-server sqldatareader

我相信在 JAVA 中我们可以将数据读取器设置为指向其结果集的第一行。我有一个超过 20 列的 SQLDataReader,我需要在使用整个结果集之前预处理一些列并计算一些值。是否可以在第一次读取数据读取器后重新读取数据读取器以获取选定的列?或者我是否需要将结果存储在数据表中并稍后从中读取?

最佳答案

来自 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx 的 MSDN 文档

Provides a way of reading a forward-only stream of rows from a SQL Server database.

您一次可以阅读一行,但是一旦阅读了下一行就不能返回到前一行。

您可以按任何顺序读取一行中的列,读取次数不限,也可以根据需要跳过字段。

while (reader.Read())
{
    var a = reader[2];   // you can skip fields
    var b = reader[0];   // you don't have to read the fields in order
    var c = reader[2];   // you can re-read fields
}

关于c# - 在 C# 中多次读取 SQLDataReader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10522661/

相关文章:

c# - Entity Framework 不将对象保存到数据库

c# - 访问 C# 变量

sql - 原子独占 SQL 记录更新

c# - SqlDataReader 获取特定的 ResultSet

c# - Wix - 如何在我的安装程序中启动另一个 MSI(或 EXE)? (C#)

c# - 确定扑克牌同花顺手

sql - 回滚完整数据库一小时

sql - Unicode - VARCHAR 和 NVARCHAR

c# - 从 SqlDataReader 转换为 JSON

c# - 我应该在这里实现 IDisposable 吗?