¿Cómo puedo abrir una tabla desde una función en .NET?

Saludos y un agradecimiento de antemano por dedicarle un tiempo a mi pregunta.
Tengo un código en VB6 que utilizo para abrir tablas de una base de datos en access y funciona bien, ahora que estoy migrando mi aplicación a .NET intento seguir con algunos métodos para ahorrar código, sin embargo me tope con este problema.
Este es mi código de vb6 que tengo en modulo General donde esta el código que usualmente se repite (este código funciona correctamente):
Function AbreTabla(Sentencia As String) As ADODB.Recordset
Dim rsTem As ADODB.Recordset
    Set rsTem = New ADODB.Recordset
    rsTem.CursorType = adOpenKeyset
    rsTem.LockType = adLockOptimistic
    rsTem.Open Sentencia, CnGeneral
    Set AbreTabla = rsTem
End Function
Este código anterior lo uso de la siguiente forma:
    Dim TUsuarios As ADODB.Recordset
    Set TUsuarios = General.AbreTabla("SELECT * FROM usuarios")
Este es el código que intente usar en .NET (este es el código que no funciona) :
    Function AbreTabla(ByVal Sentencia As String) As OleDbDataReader
        Dim TextoError As String
        Dim ok As String
        Dim cmd As OleDbCommand = CnGeneral.CreateCommand()
        cmd.CommandText = Sentencia
        cmd.Connection = CnGeneral
        Try
            AbreTabla = cmd.ExecuteReader(CommandBehavior.CloseConnection)
        Catch ex As Exception
            TextoError = Split(ex.Message, """")(0)
            ok = MsgBox("Imposible abrir la tabla " & TextoError, MsgBoxStyle.Critical, "Error")
        Finally
            CierraDBGeneral()
        End Try        
    End Function
Y asi es como la intento usar:
        Dim TUsuarios As OleDbDataReader()
        TUsuarios = General.AbreTabla("Select * from Usuarios")
y los errores que me envia son:
Warning1Function 'AbreTabla' doesn't return a value on all code paths. A null reference exception could occur at run time when the result is used.
Error2Value of type 'System.Data.OleDb.OleDbDataReader' cannot be converted to '1-dimensional array of System.Data.OleDb.OleDbDataReader'.
Datos adicionales:
Windows XP
Visual Studio 2005
.netframework 2.5
No tengo problemas con la apertura de la base de datos, ya verifique y se abre la base con los secuencias de conexión adecuadas.
Gracias.

1 respuesta

Respuesta
1
Debes quitar los parectesis de Dim TYsuarios As OleDbDataReader pues eso indica que vas a crear un array ese es el error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas