Foros del Web » Programación para mayores de 30 ;) » .NET »

Execute Reader: la propiedad Connection no se ha inicializado

Estas en el tema de Execute Reader: la propiedad Connection no se ha inicializado en el foro de .NET en Foros del Web. Buenas a todos nuevamente. Hice hace un par de meses un programa en VB con Acces y he tenido que formatear el equipo (Con una ...
  #1 (permalink)  
Antiguo 15/11/2011, 05:41
Avatar de 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

Buenas a todos nuevamente.

Hice hace un par de meses un programa en VB con Acces y he tenido que formatear el equipo (Con una copia de seguridad vieja) en la que no tenia los archivos necesarios de un programa que habia creado.

La cosa está en que estoy haciendola nuevamente desde 0 y estoy teniendo problemas.

Estoy utilizando VB.NET 2008 Express con una base de datos en Acces a la cual estoy accediendo correctamente.

Después de hacer la conexión a la base de datos y al intentar listar el contenido de la misma me da el siguiente error:
Cita:
Execute Reader: la propiedad Connection no se ha inicializado
Pongo el código que tengo en la Clase:
Cita:
Imports System.Data.Odbc
Imports System.Data.OleDb
Imports System.Data
Imports System
Public Class CAkotei
Private conexionBD As OleDb.OleDbConnection
Private sql As OleDb.OleDbCommand
Private datos As OleDb.OleDbDataReader
Public lista As String

Public UsuariosAKO
Public PassAKO
Public PcAKO
Public RAMAKO
Public EquipoAKO
Public MAILAKO
Public APEAKO
Public IMPAKO

'Constructor de la clase

Public Sub conectar()
Dim ruta As String
Try
sql = New OleDb.OleDbCommand
sql.Connection = conexionBD

ruta = Application.StartupPath & "\bdDatabase.mdb"
'MsgBox(ruta)
'conexionBD = New OdbcConnection("dsn=RedUtility;uid=root;pwd=pass;" )

conexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLED B.4.0; Data Source=" & ruta)
conexionBD.Open()
MsgBox("Conexión establecida correctamente con Akotei")

Catch ex As Exception
MsgBox("No se ha podido conectar a la base de datos")
End
'MsgBox(ex.Message)
'End

End Try

End Sub


Public Sub Listar()
MsgBox("LISTAR")
Try
sql.CommandText = String.Format("Select * from AKOTEI")
datos = sql.ExecuteReader()
Catch ex As Exception
MsgBox(ex.Message)
End
End Try

End Sub
Public Function ListarCombo() As Boolean
MsgBox("ListarCombo")
sql.CommandText = String.Format("Select * from AKOTEI")
datos = sql.ExecuteReader()
If datos.Read Then
UsuariosAKO = datos("Nom_Usuario")
ListarCombo = True
Else
datos.Close()
ListarCombo = False
End If
End Function

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


End Class
El código del Form:
Cita:
Imports System.Net
Imports System.Net.Sockets
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Data.OleDb
Imports System.Data
Imports System.Data.Odbc

Public Class Form1
'Declaramos las Variables para Akotei
Public akotei As CAkotei
Public usuariosAKO As CAkotei

Private Sub lblresul_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblresul.TextChanged
If lblresul.Text = 1 Then

Akotei = New CAkotei
usuariosAKO = New CAkotei


MDIParent1.Text = "Contactos"

akotei.conectar()
akotei.Listar()

While Akotei.ListarCombo = True
cmbnombreusuario.Items.Add(usuariosAKO.UsuariosAKO )
End While

txtusuario.Text = ""
txtusuario.Text = usuariosAKO.Obtener_Usuario(cmbnombreusuario.Selec tedItem)
End If
End Sub
End Class
Alguna sugerencia? Gracias
  #2 (permalink)  
Antiguo 15/11/2011, 09:00
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: Execute Reader: la propiedad Connection no se ha inicializado

el detalle esta en tus consultas.

MsgBox("ListarCombo")
'esta line te marca el error
sql.CommandText = String.Format("Select * from AKOTEI")
'seria asi. tendrias que declarar sql como String, y declarar un DataAdapter para ejecutar ahi 'la consulta
'ejemplo:
'dim data as new OleDb.OleDbDataAdapter(consultaSQL, conexion)
sql=String.Format("consulta")
datos = sql.ExecuteReader()
If datos.Read Then
UsuariosAKO = datos("Nom_Usuario")
ListarCombo = True
Else
datos.Close()
ListarCombo = False
End If

te muestro mi codigo para llenar combos.

conec.conexion()
Dim cliente As OleDb.OleDbCommand

Dim dc As OleDb.OleDbDataReader
cbxNomCliente.Items.Clear()
cliente = New OleDb.OleDbCommand("Select NOMBRE from CATCLIENTES ", conec.con)
dc = cliente.ExecuteReader()

While dc.Read()
Me.cbxNomCliente.Items.Add(dc(0))
End While

dc.Close()
conec.con.Close()

espero haberte ayudado y no haberte confundido mas
saludos
  #3 (permalink)  
Antiguo 15/11/2011, 11:36
Avatar de freemanworld  
Fecha de Ingreso: agosto-2008
Mensajes: 191
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Execute Reader: la propiedad Connection no se ha inicializado

Gracias Por la respuesta.

He probado y me sigue fallando....
  #4 (permalink)  
Antiguo 15/11/2011, 12:18
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: Execute Reader: la propiedad Connection no se ha inicializado

estad dos variables
Private sql As OleDb.OleDbCommand
Private datos As OleDb.OleDbDataReader

las debes declarar asi
Private sql As NEW OleDb.OleDbCommand
Private datos As NEW OleDb.OleDbDataReader

ya que no son variables propiamente si objetos de ese libreria.

saludos
  #5 (permalink)  
Antiguo 15/11/2011, 12:21
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: Execute Reader: la propiedad Connection no se ha inicializado

pero en teoria debe funcionar de la primera forma que te mostre. y aparentenemte esta bien tu codigo, el unico detalle que veo es este
sql.CommandText = String.Format("Select * from AKOTEI")
porque yo lo uso sin el .commandText

saludos
  #6 (permalink)  
Antiguo 16/11/2011, 10:12
Avatar de freemanworld  
Fecha de Ingreso: agosto-2008
Mensajes: 191
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Execute Reader: la propiedad Connection no se ha inicializado

Hola!!

Gracias por tu ayuda..

Nada...
Si los declaro con el NEW en datos me falla, me dice que el tipo 'System.data.Oledb.DataReader' no tiene ningun constructor

Y si le quito a datos el NEW me sigue fallando.

Puede ser que tenga que añadir alguna referencia para que funcione???
Ya no sé que más hacer...

Etiquetas: connection, execute, net, propiedad, reader, sql, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:29.