首页 > 解决方案 > OracleDataReader Reader.Read() 显示枚举未产生任何结果,但行数为真

问题描述

我有一个返回 oracle reader 的抽象方法,我可以在枚举中看到行,并且在调试时将 rows 字段设置为 true,但是当我到达 reader.Read() 行时,它显示 Enumeration 没有产生任何结果,但行仍然设置为 true .

Dim reader as OracleDataReader = pobj_W.GetMyReader()
   
While reader.Read()
   //code
End while

终于可以访问上面返回oracle reader的抽象方法了

 Dim Cmd As OracleCommand = Nothing
            Dim reader As OracleDataReader = Nothing
            Dim sentCmd As Boolean = False
    
   If robj_Command Is Nothing Then
        Cmd = pcon_Conn.MyOraConn.CreateCommand
        Cmd.CommandText = vstr_SQL  
    Else
            Cmd = robj_Command
            sentCmd = True
        End If

        If pcon_Conn.QueryTimeout > 0 Then 
         Cmd.CommandTimeout = pcon_Conn.QueryTimeout

        reader = Cmd.ExecuteReader()

        If sentCmd = False Then Cmd.Dispose()
        Cmd = Nothing

        Return reader

它永远不会进入循环,因为枚举没有产生任何结果。这里发生了什么?

在调试时,结果视图将在几秒钟后显示行,然后它变空但行仍然保持真实。

标签: vb.netoracleoracle11godp.net

解决方案


推荐阅读