Newsgroup: it.comp.lang.visual-basic
Titolo: [VB.NET] dataset pieno o vuoto???

Ciao,
Ho creato una Function che mi preleva i dati tramite dataset da un
database a seconda della query che gli passo.
Quando pero' richiedo una tabella che non contiene dati all'interno, mi
viene generato un errore all'ultima istruzione:
Dim Connessione As New OleDbConnection( <CUT> )
Connessione.Open()
Dim daDatabase As New OleDbDataAdapter(QuerySql, Connessione)
Dim dsDatabase As New DataSet
daDatabase.Fill(dsDatabase)
Come posso fare per interrompere la Function prima che l'ultima istruzione
venga eseguita nel caso quanto estrapolato dal database non contenesse
dati?
Grazie.

 viene generato un errore all'ultima istruzione:
Mi pare molto, molto strano...
Che errore ti viene segnalato, esattamente?
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
Se i tempi non chiedono la tua parte migliore, inventa altri tempi. 
(Baolian, libro II, vv. 16-17)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Che errore ti viene segnalato, esattamente?
Eccolo:
Eccezione non gestita di tipo "System.Data.OleDb.OleDbException" in
system.data.dll

pollom ci ha detto :

Il problema dovrebbe essere in quel <cut> o in quel QuerySql.
Ma, per curiosità, perchè mai non fai un normale copiaincolla, anzichè 
cambiare il codice fra quello che ti dà errore e quello che posti?
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 system.data.dll
Pollom, davvero, non voglio trattarti male...
Ma ti sembra che quella cosa che hai scritto lě sopra possa essere
considerato riportare "esattamente" l'errore che ti compare?
Che una tabella o una query, pur essendo correttissime, non contengano
record, č una situazione troppo "normale" perchč possa essere una fonte di
errore...


 
Ho riportato tutto ciò che mi compare nel box che riporta l'errore. C'e'
scritto solo quello che ho riportato, nient'altro. L'unica cosa che non ho
riportato è testo che compare come intestazione del msgbox che è
"Microsoft Development Environment".
Non compare nient'altro!

 
Ecco la function senza tagli:
Private Function QueryDatabase(ByVal QuerySql As String) As DataSet
   Dim Connessione As New
   OleDbConnection("Provider=Microsoft.Jet.OLEDB.;" & "Data Source= " &
PercorsoArchivio & ";")
   Connessione.Open()
   Dim daDatabase As New OleDbDataAdapter(QuerySql, Connessione) 
   Dim dsDatabase As New DataSet
   daDatabase.Fill(dsDatabase)
   Connessione.Close()
   Return dsDatabase
End Function
Richiamo la function per esempio con:
Private Sub Prova()
   Dim ResultQuery As DataSet
   ResultQuery = QueryDatabase("SELECT * FROM prova WHERE mio_id = 1")
<CUT>
End Sub
Se la tabella "prova" è popolata con elementi il tutto funziona
correttamente, se la tabella "prova" esiste, ma è vuota, genera
quell'errore. (non ho provato a richiamare la function per una tabella con
elementi, ma senza neanche un elemento con la colonna mio_id = 1)
La variabile PercorsoArchivio è dichiarata a livello globale e contiene
il percorso del database access.

 Non compare nient'altro!
Ehm...
Pollom...
Non so come funzioni e come sia settato il tuo ambiente di sviluppo. A mč,
quando compilo e faccio partire un progetto, si aggiunge alle finestre di
progettazione e di codice un'ulteriore finestra che si chiama, se non
ricordo male, "output". Quando il programma finisce, in questa stessa
finestra, viene riportato il motivo dell'interruzione, che in caso di
errore č molto, ma molto molto, dettagliata.
