初写的代码如下:
Public Overloads Function GetDataReader(ByVal Fstring As String) As SqlDataReader
If _ConnString = "" Then
Return (Nothing)
End If
Dim sqlcn As New SqlConnection(_ConnString)
Dim sqlcmd As New SqlCommand(Fstring, sqlcn)
Dim sqlrd As SqlDataReader
Try
sqlcn.Open()
sqlrd = sqlcmd.ExecuteReader(CommandBehavior.CloseConnection)
Catch ex As Exception
End Try
sqlcmd.Dispose()
sqlcn.dispose()
Return (sqlrd)
End Function
当在其他代码中调用这个函数后,发现sqldatareader是处于close()状态,然后通过代码调试发现,每次总在sqlcn.dispose后,sqldatareader就处理关闭状态了,后来就把那个sqlcn.dispose()去除,到现在还没有啥问题,但是不知道以后会不会发生问题,而且也不太明白,为什么sqlcn已经close,只不过是在dispose一下,还会影响sqldatareader