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
ENIGMA - Su ExecuteReader - Ripetuto
mercoledì 09 gennaio 2008 - 11.54
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gmt
Profilo
| Junior Member
98
messaggi | Data Invio:
mer 9 gen 2008 - 11:54
Salve,
un mio programma deve fare purtroppo(e non è possibile fare altrimenti) molti cicli e all'interno instanzio e uso OleDbCommand e OleDbDataReader..
Quello che posto è una parte di codice (con le prove della disperazione) che si blocca dopo alcune decine/centinaia di elaborazioni.. nella riga segnata, la connessione è aperta sopra e chiusa lla fine..
Ho provato anche a fare una funzione che apre la connessione, restituisce il DataReader e chiude la connessione.. IDEM anzi. anche peggio..
Il messaggio 'Errore non specificato..'
Il database è Access e ho messo Jet 4.0 Service Pack 8 (SP8) per Windows XP.. il programma è C# Windows application..
//oComm3.CommandText = sSQL;
//DrOrd3.Close();
//DrOrd3.Dispose();
//oComm3.Dispose();
//oComm3 = new OleDbCommand(sSQL, oConn);
---> //DrOrd3 = oComm3.ExecuteReader();
Sono disperato ! non so cosa fare !!
Grazie a chi riesce ad aiutarmi
FedericoC
Profilo
| Junior Member
134
messaggi | Data Invio:
mer 9 gen 2008 - 12:25
Forse access non riesce a reggere il carico...
Da quanto ho letto l'errore non avviene su una riga specifica ma avviene dopo un tot di tempo, secondo me il database non riesce a gestire tutto...
Magari prova a vedere con un contatore dopo quanto si blocca per vedere se è sempre nello stesso punto...
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mer 9 gen 2008 - 12:30
>Salve,
>un mio programma deve fare purtroppo(e non è possibile fare altrimenti)
>molti cicli e all'interno instanzio e uso OleDbCommand e OleDbDataReader..
>
>Quello che posto è una parte di codice (con le prove della disperazione)
>che si blocca dopo alcune decine/centinaia di elaborazioni..
>nella riga segnata, la connessione è aperta sopra e chiusa lla
>fine..
>Ho provato anche a fare una funzione che apre la connessione,
>restituisce il DataReader e chiude la connessione.. IDEM anzi.
>anche peggio..
>
>Il messaggio 'Errore non specificato..'
>Il database è Access e ho messo Jet 4.0 Service Pack 8 (SP8)
>per Windows XP.. il programma è C# Windows application..
>
>//oComm3.CommandText = sSQL;
>//DrOrd3.Close();
>//DrOrd3.Dispose();
>//oComm3.Dispose();
>//oComm3 = new OleDbCommand(sSQL, oConn);
>---> //DrOrd3 = oComm3.ExecuteReader();
>
>Sono disperato ! non so cosa fare !!
>Grazie a chi riesce ad aiutarmi
Personalmente ricercherei la causa nella gestione di apertura e chiusura del DataBase.
Se può esserti utile nel mio blog (link sotto) trovi una classe già pronta per la gestione semplificata degli accessi al Database...
ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
gmt
Profilo
| Junior Member
98
messaggi | Data Invio:
mer 9 gen 2008 - 14:18
Ringrazio per il tempo dedicatomi, ma ho implementato la tua classe.. e mi da errore anche prima.. purtroppo
Io comunque apro una sola connessione.. e la chiudo alla fine..
Non so piu' che fare.. sigh
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mer 9 gen 2008 - 14:22
Se puoi postare il codice che hai usato per implementare la mia classe vedo dove hai sbagliato.
Ciao
Ale
http://blogs.dotnethell.it/alebadalin
FedericoC
Profilo
| Junior Member
134
messaggi | Data Invio:
gio 10 gen 2008 - 15:41
Io proverei a mettere un timer che dopo un tot. di tempo ferma il codice temperaneamente (sleep), in modo da far rifiatare il computer, se così riesci ad eseguire tutte le query significa che è un problema di "sovraccario" del pc...
RedStripe
Profilo
| Newbie
31
messaggi | Data Invio:
mar 15 gen 2008 - 10:27
Possibile che l' errore non sia definito? Hai provato con la gestione try catch?? Non ti dice niente di significativo? Se ha molti accessi ripetuti e ravvicinati nel tempo perchè apri e chiudi la connessione tutte le volte? Prova a aprirla all' avvio e chiuderla alla chiusura dell' applicazione. Penso che il problema sia legato allo stress del db di access causato dalle troppe aperture/chiusure di connessione..
gmt
Profilo
| Junior Member
98
messaggi | Data Invio:
mar 15 gen 2008 - 10:40
Salve,
grazie dell''interessamento.. ho risolto in maniera diversa.
Mi sono creato un paio di tabelle temporanee di appoggio con dei dati e poi con una solo query ho fatto tutto il lavoro.. da 2 pagine di codice sono arrivato a 10 righe.
Comunque credo che sia legato al binomio Connessioni+Access che viene troppo stressato.. Di giri ne faceva davvero molti..
Purtroppo il vecchio codice non c'è più, ma se volete fare una prova.. fate un ciclo, e all'interno aprite una connessione ad access, fate 3-4 select e una insert.. chiudete la connessione..
Grazie a tutti
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 !