Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2012, 02:44
Avatar de freemanworld
freemanworld
 
Fecha de Ingreso: agosto-2008
Mensajes: 191
Antigüedad: 15 años, 8 meses
Puntos: 0
Execute Reader: la propiedad Connection no se ha inicializado

Hola de nuevo,

He vuelto a retomar el programa que empecé a realizar hace un par de meses.
Voy paso a paso pero me he encontrado con que me vuelve a aparecer este error.
Facilto el código que estoy usando en la Clase que he creado:
Cita:
Imports System.Data.OleDb
Imports System.Data.Odbc
Imports System.Data
Imports System
Imports System.Data.SqlClient

Public Class CAkotei
Private conexionBD As New OleDb.OleDbConnection
Private sql As New OleDb.OleDbCommand
Private datos As OleDb.OleDbDataReader

Public lista
Public Usuario
Public Nombre
Public Apellido
Public NombreDeEquipo
Public Ram
Public IP
Public tfn
Public Ext
Public eMail
Public Impresora

'Constructor de la clase

Public Sub conectar()
Dim ruta As String
Try
sql = New OleDb.OleDbCommand
sql.Connection = conexionBD
ruta = Application.StartupPath & "\bdDatabase.mdb"
conexionBD = New OleDb.OleDbConnection("Provider=Microsoft.JET.OLED B.4.0;" & _
"Data Source=" & System.Environment.CurrentDirectory & "\bdDatabase.mdb")
conexionBD.Open()
Catch ex As Exception
MsgBox("No se ha podido conectar a la base de datos")
End
End Try

End Sub
Private Sub CerrarConexion()
conexionBD.Close()
'UPGRADE_NOTE: El objeto conexion no se puede destruir hasta que no se realice la recolección de los elementos no utilizados. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6E35BFF6-CD74-4B09-9689-3E1A43DF8969"'
conexionBD = Nothing
'UPGRADE_NOTE: El objeto datos no se puede destruir hasta que no se realice la recolección de los elementos no utilizados. Haga clic aquí para obtener más información: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6E35BFF6-CD74-4B09-9689-3E1A43DF8969"'
datos = Nothing
End Sub

Public Sub Listar()
Dim sql As Object
'Obtenemos todos los contactos actuales:
sql.CommandText = String.Format("Select Nom_Usuario from AKOTEI")
datos = sql.ExecuteReader()
End Sub

Public Function Obtener_Nequipo(ByVal PcMEN As String)
Dim user As String = ""
conexionBD.Open()
sql.CommandText = String.Format("Select Nombre_PC from AKOTEI where Nom_Usuario = '{0}'", PcMEN)
datos = sql.ExecuteReader
If datos.Read() Then
user = datos("Nombre_PC")
End If

datos.Close()
Return user
'Err_NombreEquipo:
' user = ""
' Resume Next
End Function
Public Function Obtener_IP(ByVal IP_MEN As String)
Dim user As String = ""
sql.CommandText = String.Format("Select IP from AKOTEI where Nom_Usuario = '{0}'", IP_MEN)

datos = sql.ExecuteReader
If datos.Read() Then
user = datos("IP")
End If

datos.Close()
Return user
End Function

Public Function Obtener_InfoEquipo(ByVal Equipo_MEN As String)
Dim user As String = ""
sql.CommandText = String.Format("Select Equipo from AKOTEI where Nom_Usuario = '{0}'", Equipo_MEN)
datos = sql.ExecuteReader
If datos.Read() Then
user = datos("Equipo")
End If

datos.Close()
Return user
End Function
Public Function Obtener_RAM(ByVal RAM_MEN As String)
Dim user As String = ""
sql.CommandText = String.Format("Select RAM from AKOTEI where Nom_Usuario = '{0}'", RAM_MEN)
datos = sql.ExecuteReader
If datos.Read() Then
user = datos("RAM")
End If
datos.Close()
Return user
End Function
Public Function Obtener_Mail(ByVal MAIL_MEN As String)
Dim user As String = ""
sql.CommandText = String.Format("Select mail from AKOTEI where Nom_Usuario = '{0}'", MAIL_MEN)
On Error GoTo Usr_Mail
datos = sql.ExecuteReader

If datos.Read() Then
user = datos("mail")
End If
datos.Close()
Return user
Usr_Mail:
user = ""

End Function
Public Function Obtener_Apellido(ByVal APE_MEN As String)
Dim user As String = ""
conectar()
sql.CommandText = String.Format("Select Ape_Usu from AKOTEI where Nom_Usuario = '{0}'", APE_MEN)
On Error GoTo Usr_err
datos = sql.ExecuteReader

If datos.Read() Then

user = datos("Ape_Usu")
End If

datos.Close()
Return user
Usr_err:
user = ""
End Function

Public Function Obtener_Impresora(ByVal IMP_MEN As String)
Dim user As String = ""
sql.CommandText = String.Format("Select Impresora from AKOTEI where Nom_Usuario = '{0}'", IMP_MEN)
On Error GoTo Usr_Impresora
datos = sql.ExecuteReader
If datos.Read() Then

user = datos("Impresora")
End If

datos.Close()
Return user
Usr_Impresora:
user = ""
End Function
Public Sub desconectar()
conexionBD.Close()
End Sub
Public Sub Alta(ByVal CONCESIONARIO As String, ByVal DNS As String, ByVal NombreDNS As String)

Dim sqlAlta As String
sqlAlta = "Insert into AKOTEI (CONCESIONARIO) values ('{0}')"
sql.CommandText = String.Format(sqlAlta, CONCESIONARIO)
sql.ExecuteNonQuery()

End Sub

Public Sub ListarUsuarios()
sql.CommandText = "Select Nom_Usuario from AKOTEI ORDER BY Nom_Usuario"
datos = sql.ExecuteReader()
End Sub

Public Function ListarCombo() As Boolean
If datos.Read Then
Usuario = datos("Nom_Usuario")
ListarCombo = True
Else
datos.Close()
ListarCombo = False
End If
End Function
End Class
El error me lo dá en:
Cita:
Public Sub ListarUsuarios()
sql.CommandText = "Select Nom_Usuario from AKOTEI ORDER BY Nom_Usuario"
datos = sql.ExecuteReader()
Me indica: No se controló InvalidOperationException

¿Alguna idea?
Gracias