Public Function getInspectMstData(ByVal para As System.Collections.Hashtable) As  System.Collections.ArrayList Implements [Interface].ICheckSheet.getInspectMstData
        
        Dim loadPrjParms As SqlParameter()
        Dim rdr As SqlDataReader
        Dim arrResult As New ArrayList        Dim tempInspect As InspectMstInfo     ‘自己写的类         loadPrjParms = Me.getInspectInfoParameters(para)   ’参数设置函数        rdr = SQLHelper.ExecuteReader(SQLHelper.CONN_STRING, CommandType.Text,       SQL_SELECT_INSPECT, loadPrjParms)
While rdr.Read
                tempInspect = New InspectMstInfo(CStr(rdr("SIZE")))
                arrresult.add(tempinspect)
end while当进入程序时 arrresult的length=0 ,然后执行  Dim arrResult As New ArrayList
时,arrresult的length读取就错误了,然后正确执行 参数设置函数,再读取出记录,SQL语句是正确执行的,不过这时候的rdr所有属性都是obtain error。 SQLHelper.ExecuteReader方法是个通用函数,正确的,单步进取返回的结果是正确的。不知道什么问题,急死了

解决方案 »

  1.   

    一执行  tempInspect = New InspectMstInfo(CStr(rdr("SIZE"))) 的时候就出错了,因为这个时候的rdr是不正常的,我通过本地窗口发现他的count等一些属性全部是 obtain error而在本地窗口上显示 arrresult 的length=error length
      

  2.   

    那你运行到这一步看看  rdr = SQLHelper.ExecuteReader(SQLHelper.CONN_STRING, CommandType.Text,       SQL_SELECT_INSPECT, loadPrjParms)rdr里面是什么,如果不对,就应该是你的SQL语句有问题了
      

  3.   

    没有引用 system.collection吧?
      

  4.   

    SQL语句 ,我通过sql事件察看器,将里面的语句在SQL分析,结果是正确的,同时我将另外一段正确的SQL放
    入执行,也出同样的错误,在执行该方法以前,有执行其他的读取操作
    以下是读取数据的代码
    Public Shared Function ExecuteReader(ByVal connString As String, ByVal cmdType As CommandType, _
                ByVal cmdText As String, ByRef cmdParms As SqlParameter()) As SqlDataReader        '変数の定義
            Dim cmd As SqlCommand = New SqlCommand
            Dim conn As SqlConnection = New SqlConnection(connString)        '運行する
            Try
                PrepareCommand(cmd, conn, Nothing, cmdType, cmdText, cmdParms)
                Dim rdr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
                cmd.Parameters.Clear()
                Return rdr
            Catch e As Exception
                conn.Close()
                Throw e
            End Try    End Function
    不过即使我先执行我的函数,也是同样的错误
      

  5.   

    to   回复人: xjking0331(Michael J) ( ) 无论应用与否都是同样的错误
      

  6.   

    我只是想知道运行rdr = SQLHelper.ExecuteReader(SQLHelper.CONN_STRING, CommandType.Text,       SQL_SELECT_INSPECT, loadPrjParms)
    之后rdr里面数据正常吗?
      

  7.   

    因为执行读取函数以后rdr就不正常了,rdr不正常了,数据应该属于没读取出来