日期:2014-05-18  浏览次数:20358 次

谁帮我写一个AC数据库查询的函数
我写的总是不能多次查询,第二次使用这个函数时,会出现错误
        Private   Con   As   String   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=E:\ymwww\ymwww\data\nbac.mdb "
        Private   connconnection   As   OleDb.OleDbConnection
        Private   command   As   OleDb.OleDbCommand

        Public   Function   SQLcx(ByVal   sql   As   String,   ByVal   gl   As   Boolean)


                'sql是sql语句,gl临时没用

                command   =   New   OleDb.OleDbCommand(sql,   connconnection)
               
                Dim   reader   As   OleDb.OleDbDataReader   =   command.ExecuteReader
                reader.read()
                Return   reader
                reader.Close()
                connconnection.Close()

                '     connconnection   =   Nothing
                '     command   =   Nothing
                '     reader   =   Nothing
                sql   =   Nothing
        End   Function

帮忙改改,能多次查询,这个函数第二次查询的时候就会出现:
已有打开的与此连接相关联的   DataReader,必须首先将它关闭。  


------解决方案--------------------

command = New OleDb.OleDbCommand(sql, connconnection)
Dim reader As OleDb.OleDbDataReader = command.ExecuteReader
reader.Read()
Dim fh = reader
reader.Close()
Return fh
我这样,就会出现 不存在此行/列的数据。 错误

我不会VB,不过这句是不是就是一个装箱的过程?Dim fh = reader?
你把箱子里的东西关了,所以就传不过去了