两次浏览DataReader

osh*_*nen 4 .net vb.net asp.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()
Run Code Online (Sandbox Code Playgroud)

但我需要循环遍历objSQLDataReader 1.我该怎么办?

Mar*_*ell 10

三种选择:

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

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