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
ASP.NET 2.0 / 3.5 / 4.0
Transazioni automatiche
lunedì 07 maggio 2012 - 16.57
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
slavishdany
Profilo
| Newbie
28
messaggi | Data Invio:
lun 7 mag 2012 - 16:57
Buongiorno a tutti,
vorrei sottoporvi un problema.
In un ciclo faccio due query e sql server va in errori dicendomi di non poter aprire un'altra connessione a causa delle transazioni automatiche.
Gli strumenti che utilizzo sono Asp.net 2.0 con fw 3.5 e linguaggio vb. DB :SQL server 2008 R2 versione 10.5.
Vi posto anche il codice in questione
dim w_conn as new oledbconnection(stringa di connessione)
dim w_trans as oledbtransaction
w_conn.open
w_trans= w_conn.BeginTransaction
w_comm as new oledbcommand("SELECT * FROM tab where stato=1",w_conn,w_trans)
dim w_read as oledbdatareader = w_comm.executereader
if w_read.hasrows then
while w_read.read
w_comm2 = new oledbcommand(select * from tab2 where id = '"& w_read("id") &"'",w_conn,w_trans)
w_read2 = w_comm2.executereader
if w_read2.hasrows then
while w_read2.read
response.write(w_read2("nome"))
end while
end if
w_read2.close()
end while
end if
Il codice non è quello effettivo perchè quello effettivo ha delle query molto più lunghe.
Comunque l'errore lo da quando cerco di eseguire la seconda query .
La cosa strana e che con non ha mai dato questo errore.
Vi ringrazio in anticipo per l'aiuto
Danilo
P.s. l'errore che mi da è il seguente :
Impossibile creare una nuova connessione perché in modalità di transazione manuale o automatica.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 7 mag 2012 - 18:03
>Buongiorno a tutti,
Ciao
>Gli strumenti che utilizzo sono Asp.net 2.0 con fw 3.5 e linguaggio
>vb. DB :SQL server 2008 R2 versione 10.5.
ti consiglio di utilizzare il TransactionScope:
http://msdn.microsoft.com/it-it/library/system.transactions.transactionscope
(v=vs.90).aspx
vedrai che ti troverai benissimo.
In poche parole tu passi una transazione e "lui" ti mantiene in quel contesto le tue N istruzioni.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
slavishdany
Profilo
| Newbie
28
messaggi | Data Invio:
mar 8 mag 2012 - 09:29
grazie mille, ho risolto alla fine ieri poco dopo aver postato il problema, ho aperto un'altra connessione e tolto la transazione dalla seconda query, chiudo la connessione subito dopo la query e per ora funziona. Appena avrò un po' più di tempo proverò la classe che mi hai consigliato .
Grazie :)
Danilo
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 8 mag 2012 - 12:16
>grazie mille, ho risolto alla fine ieri poco dopo aver postato
>il problema, ho aperto un'altra connessione e tolto la transazione
>dalla seconda query, chiudo la connessione subito dopo la query
>e per ora funziona. Appena avrò un po' più di tempo proverò la
>classe che mi hai consigliato .
Credimi, fallo quanto prima perchè è proprio una best practice in questi casi.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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 !