strSQL = "select distinct 记录时间 from 表A order by 记录时间 asc"
objOracleDataCommand.CommandText = strSQL
objOracleDataCommand.Connection = objOracleConnection
DtaResult = objOracleDataCommand.ExecuteReader(CommandBehavior.Default)
Do While DtaResult.Read() = True
If (DtaResult.IsDBNull(0) <> True) Then             
        strTime = DtaResult(0)
    end if
    response.write (strTime+"<br>")
strsql=""
strsql="select distinct 分类一 from 表A where 记录时间='" + strTime + "' order by 分类一"
objOracleDataCommand.CommandText = strSQL
objOracleDataCommand.Connection = objOracleConnection
DtaResult1=objOracleDataCommand.ExecuteReader(CommandBehavior.Default)
Do While DtaResult1.Read() = True
If (DtaResult1.IsDBNull(0) <> True) Then             
        strClassification1 = DtaResult1(0)
    end if
    response.write ("&nbsp;&nbsp;&nbsp;&nbsp;"+strClassification1+"<br>")
strsql=""
strsql="select distinct 分类二 from 表A where 分类一='" + strClassification1 + "' order by 分类二"
objOracleDataCommand.CommandText = strSQL
objOracleDataCommand.Connection = objOracleConnection
DtaResult2=objOracleDataCommand.ExecuteReader(CommandBehavior.Default)
Do While DtaResult2.Read() = True
If (DtaResult2.IsDBNull(0) <> True) Then             
        strClassification2 = DtaResult2(0)
    end if
    response.write ("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+strClassification2+"<br>")
    strsql=""
    strsql="select 内容 from 表A where 分类二='" + strClassification2 + "'"
    objOracleDataCommand.CommandText = strSQL
objOracleDataCommand.Connection = objOracleConnection
DtaResult3=objOracleDataCommand.ExecuteReader(CommandBehavior.Default)
i=0
Do While DtaResult3.Read() = True
If (DtaResult3.IsDBNull(0) <> True) Then             
        strContent = DtaResult3(0)
    end if
    i=i+1
    response.write (cstr(i)+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+strContent+"<br>")
Loop
Loop
Loop
Loop

解决方案 »

  1.   

    我试过了,提示sqlconnection 没有打开。
    如果 sqlconnection.open()后,在第二个循环处又提示需要将sqlconnection.close()
    是不是一个sqlconnection只能支持一个sqldatareader.
      

  2.   

    不好意思,上端程序中我忘记给你加了。^_^objOracleConnection.open()加在上段程序的第四行,然后将objOracleConnection.close()加在最后一行,试试!祝你好运!请换成你的SqlConnection,其外,它应该是可以支持若干sqldatareader的。^_^
      

  3.   

    可是还是提示错误,错误提示如下:
    There is already an open DataReader associated with this Connection which must be closed first.
      

  4.   

    一个SqlDataReader必须单独占用一个打开的数据库连接,在该数据库连接关闭之前别的方法绝对不能使用此打开的数据库连接!!你可以考虑用SqlDataAdapter来填充DataTable或DataSet,这样整个循环只需要一个打开的数据库连接。--------------------------------
    AspNetPager 免费分页控件3.0版发布,欢迎下载使用:http://www.webdiyer.com