Newsgroup: it.comp.lang.visual-basic
Titolo: [.NET]Accessor non valido

Cos'e' un Accessor?
Mi spiego meglio:
Due liste lstEdifici e lstAlloggi in cui vorrei caricare gli id dei
due tabelle:
Una lo faccio sul form load:
    Private Sub NewEdificio_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
        lstEdifici.Items.Clear()
        lstAlloggi.Items.Clear()
        Dim rdrEdifici As OleDb.OleDbDataReader
        Try
            EdificiGiaInseriti.Parameters.Item(0).Value =
lblCantiere.Tag
            OleDbConnection1.Open()
            rdrEdifici = EdificiGiaInseriti.ExecuteReader()
            If (rdrEdifici.HasRows = True) Then
                While rdrEdifici.Read()
                    lstEdifici.Items.Add(rdrEdifici("ID_Edificio"))
                End While
            Else
                lstEdifici.Items.Add("Nessun Edificio")
            End If
        Catch ex As Exception
            MsgBox("Si è verificato un errore: " & ex.Message)
        End Try
        OleDbConnection1.Close()
    End Sub
E questa non da alcun problema, il problema e' dato da questa:
    Private Sub lstEdifici_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
lstEdifici.SelectedIndexChanged
        lstAlloggi.Items.Clear()
        Try
            Dim rdrAlloggi As OleDb.OleDbDataReader
            If (lstEdifici.SelectedItem.ToString() = "Nessun
Edificio") Then
                lstAlloggi.Items.Add("Nessun Edificio")
            Else
                AlloggiGiaInseriti.Parameters.Item(0).Value =
lstEdifici.SelectedItem
                OleDbConnection1.Open()
                rdrAlloggi = AlloggiGiaInseriti.ExecuteReader()
                If (rdrAlloggi.HasRows = True) Then
                    While rdrAlloggi.Read()
lstAlloggi.Items.Add(rdrAlloggi("ID_Alloggio"))
                    End While
                Else
                    lstAlloggi.Items.Add("Nessun Alloggio")
                End If
            End If
        Catch ex As Exception
            MsgBox("Si è verificato un errore: " & ex.Message)
        End Try
        OleDbConnection1.Close()
    End Sub
Ogni volta che seleziono un elemento della prima lista lstEdifici (e
quindi genero l'evento della seconda procedura) la prima volta
funziona e carica gli elementi nella seconda lista (lstAlloggi) mentre
la seconda volta, sia che selezioni lo stesso elemento o un altro,
questa seconda procedura mi da come errore (catturato dal come
eccezione dal Try):
Accessor non valido
Se tolgo il try catch si impianta sull'Execute Reader dandomi la
solita OledbException generica
Ora qualcuno ha idea di cosa sia un Accessor?
Oppure ci sono altri modi migliori per fare quello che sto facendo?
---
Matteo 79

 Oppure ci sono altri modi migliori per fare quello che sto facendo?
caricarti i dati in un dataset, in due datatable, e poi lavorare su
quelli. (non è detto che sia meglio, è solo un'altro possibile approccio)
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

quelli. (non è detto che sia meglio, è solo un'altro possibile approccio)
Ok ma il fill del dataset lo dovrei fare molto spesso per quello che
questo form serve ed e' un'operazione parecchio dispondiosa, molto
meno di una semplice query.
Pensavo che il datareader fosse la cos amigliore
---
Matteo 79