Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Datareader ancora attivo che ... non esiste!
martedì 22 aprile 2014 - 17.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows XP
|
Visual Studio Express
|
MySQL 5.1
|
Access (.mdb)
|
Firefox
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
mar 22 apr 2014 - 17:33
Salve a tutti, ho un progetto che mi riporta un messaggio in cui mi si dice che ho un datareader ancora attivo e che pertanto non posso instanziare una connessione sull'oggetto command.
L'errore lo ottengo nel momento in cui assegno un oggetto connessione all'oggetto Command....
Nel progetto esiste uno ed un solo Datareader e so per certo che questo viene espressamente chiuso poco prima di generare l'errore....per cui...a quale diamine di datareader si riferisce dato che l'unico che ho è chiuso (il debugger con un punto di watch mi dice IsClosed =true) ??
Altro mistero.... ho inviato un pezzo di codice allo sviluppatore del provider di dati...dice che da test fatti il blocco non risulta sul datareader che ho e che quindi ne deve esistere per forza un altro....ma io non ce l'ho !!!
Avevo già messo un topic sull'argomento ma specifico per un provider dati; ora la mia richiesta è più generica, ossia...come faccio ad individuare chi mi blocca l'esecuzione in un caso come questo ? Per quello che è in mio potere le ho provate di tutte...
Aggiungo che lo stesso codice non genera alcun errore su altri 4 provider di dati e che utilizzo il provider factory.
Grazie a chi vorrà aiutarmi in questo macello che dura ormai da più di un mese...
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
mar 22 apr 2014 - 19:31
te la butto li, hai provato con l'IntelliTrace di visual studio?
http://blogs.msdn.com/b/zainnab/archive/2013/02/12/understanding-intellitrace-part-i-what-the-is-intellitrace.aspx
registra tantissimi eventi di ADO.NET e forse potresti capire chi blocca cosa
Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
mar 22 apr 2014 - 19:58
Dopo piu di un mese, oggi a sorpresa ho trovato l'inghippo...
Tutto era dovuto a questa riga di codice.
frmAutomazione.SorgenteAutomazioni.DataSource = objCmd.ExecuteReader
In pratica io cercavo un Datareader come oggetto dichiarato come tale, non pensavo al fatto che, chiamando il metodo ExecuteReader, si genera comunque un Datareader, che in sostanza mi rimaneva appeso...
Il problema lo dava solamente su SQLite con .NET provider, però è comunque un errore di progettazione mio....
Grazie comunque, farò tesoro del tracciamento di cui mi parli e che non conoscevo.
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
mar 22 apr 2014 - 20:02
anche per questi motivi ti dicevo di incapsulare l'accesso ai dati in classi create ad-hoc che gestiscono le connessioni
, in modo che chi le utilizza è tranquillo nel farlo, e se mai una connessione rimanesse appesa, sai subito dove guardare, di certo non nel codice dell'interfaccia grafica
Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mer 23 apr 2014 - 04:12
.... e non la chiude,
o ancora hai da qualche parte un datareader aperto con quella connessione "connetti" che ti impedisce.
Ripeto, devi cercare il datareader aperto.
te lo avevo detto o no che avevi un datareader APERTO.
CIAO
Riccardo D'Aria
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
mer 23 apr 2014 - 07:45
si ridaria, avevi ragione, ma se invece di essere arrogante mi spiegavi, come ha fatto qualcun altro che poi mi ha guidato alla soluzione con questo piccolo suggerimento, che non dovevo cercare solo sugli oggetti dichiarati come Datareader ma anche su una chiamata del genere, che comunque genera un datareader, forse non avrei penato cosi tanto.
Inoltre, non mi pare proprio un errore ed infatti il codice passa senza intoppi su tutti i database che uso...anzi...su tutti i data provider che uso...perchè credo sia un problema di provider dati... gli altri non generano nessun datareader appeso....
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mer 23 apr 2014 - 09:22
>si ridaria, avevi ragione, ma se invece di essere arrogante mi
>spiegavi, come ha fatto qualcun altro che poi mi ha guidato alla
>soluzione con questo piccolo suggerimento, che non dovevo cercare
>solo sugli oggetti dichiarati come Datareader ma anche su una
non pensavo che tu non sapessi che anche altri oggetti aprono dei dataReader.
Ciao
Riccardo D'Aria
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !