两次浏览DataReader

时间:2011-03-30 14:42:15

标签: .net asp.net vb.net .net-3.5

我有以下代码可以执行它应该执行的操作:

objSQLCommand = New SqlCommand("select * from table1", objSQLConnection)

objSQLCommand.Connection.Open()
objSQLDataReader = objSQLCommand.ExecuteReader()

While objSQLDataReader.Read()
    objStringBuilder.Append(objSQLDataReader("forename"))
    objStringBuilder.Append("<br /><br />")
    objStringBuilder.Append(objSQLDataReader("surname"))
    objStringBuilder.Append("<br /><br />")
End While

objSQLDataReader.Close()
objSQLCommand.Connection.Close()

但我需要循环遍历objSQLDataReader 1次。我该怎么做?

2 个答案:

答案 0 :(得分:10)

三个选项:

  • 执行两次查询(这样的读者只是前锋)
  • 在本地缓冲数据,然后处理两次(“缓冲区”可以是对象集合,XML,DataTable(吐)等)
  • 同时写两个输出 ;即对于每一行,将第一种格式写入第一种输出,然后将第二种格式写入第二种输出

我可能会瞄准最后一个选项,因为它不涉及缓冲或重复;但是我会将每种方法的逻辑移动到2种不同的方法

答案 1 :(得分:3)

仅循环数据阅读器一次并将数据加载到某种实例化的集合(例如List<MyDataObject>)中,稍后可以引用该集合以反复循环。