Errore frustrante connesione db con ASP.NET 4.0!

mercoledì 30 giugno 2010 - 10.10

ciaonet Profilo | Newbie

Ciao a tutti,
è da un po’ che sto su un'applicazione ASP.NET e finora nessun problema. Adesso sto implementando un algoritmo per aggiungere commenti. Già fatto tutto solo che l'algoritmo che prende il commento dal db e lo aggiunge in un panel presente in RadPanlBar dà l'errore appena richiamo un metodo Get... da reader. Non so più che fare, ho provato tutto. Tutte i reder, scalar, sono chiusi (ho chiamato persino metodo Dispose di ogni SqlCommand non più usato). Ho provato a mettere l'algoritmo come primo, ma niente da fare... COSA DEVO FARE??? Poi usa la stessa connessione per più SqlCommand ma non dovrebbe essere un problema in quanto alza notevolmente le performance.

Errore è questo: InvalidOperationException was caught - ExecuteScalar requires an open and available Connection. The connection's current state is closed.

E il pezzo di codice dove si verifica è questo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Qualche idea?

GRAZIE IN ANTICIPO

Gluck74 Profilo | Guru

mi pare strano questo errore perché avviene subito dopo un .HasRow() e un .Read()

hai provato a testare i valori?

Aggiungi questo per provare:

App_Controls.commento commento = (App_Controls.commento)LoadControl("~/App_Controls/commento.ascx"); if (commento != null) { object Dummy = readercomm.GetInt32(0); // controlla qui che cosa c'è in Dummy (se non da errore) commento.UtenteID = readercomm.GetInt32(0); // ◄ ECCEZIONE SI VERIFICA LI' ◄ ... ... }



se l'errore è uguale, forse forse la connessione non ti permette di utilizzare oggetti connessi come il datareader. Quindi opterei per un datatable.

ciao
____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

ciaonet Profilo | Newbie

Grazie 1000 per la risposta!
Dopo un paio di giorni, indovina cosa scopro... Prima ero voltato verso qualche bug di Microsoft SQL Server che dopo un tot di reader (che implementavo prima) dalla stessa fonte, al improviso chiuda... Ma non dava proprio senso.
Allora ho fatto il debug su carta PASSO A PASSO ... Ma niente di annomalo. Poi per pura curisità apro il file dove sta il controllo.
**** **** **** **** **** ****
Quindi anche la proprietà UtenteID dove lanciava errore.
E sai cosa ho scoperto : manca un try catch e c'è pure un ExecuteScallar() E PRIMA DEL ES NON C'E' CONN.OPEN();.
Quindi oltre a (con tutto il rispetto, verso i santi, madonne) le peggiori bestemie che ho mai detto, ho fixato tutto.

Gluck74 Profilo | Guru

tutto è bene quel che finisce bene........ diceva uno

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5