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
DetailsView - INSERT - TRIGGER, non ne vengo fuori !!
venerdì 04 luglio 2008 - 11.50
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gmt
Profilo
| Junior Member
98
messaggi | Data Invio:
ven 4 lug 2008 - 11:50
Salve, ho una applicazione asp.net 2.0
Sono riuscito a fare tutto con il controllo DetailsView..
Il problema è questo: durante l'INSERT (il detailsview si appoggia a SQLDataSource) nel db (SQL Server 200) c'è un trigger che fa dei controlli..
Se dai controlli risultano anomalie non voglio inserire il record .. quindi nel trigger ho messo
....
ROLLBACK TRANSACTION
...
Tutto ok.. ma non riesco a gestire l'errore che (giustamente) mi ritorna la pagina.. errore che dice ..
The transaction ended in the trigger. The batch has been aborted.
come posso intercettare questo evento ?
L'insert la fa il SQLDataSource e non io da codice.. vorrei rimanesse cosi'..
Grazie
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
ven 4 lug 2008 - 16:02
Una soluzione può essere di intercettare l'inserted del tuo sqldatasource con una funzione così
Protected Sub SqlDataSource1_Inserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Inserted
dim Risoltato as string = e.Exception.Message.ToString
'se il risultato è un errore oppure puoi verificare se non ci sono righe toccate
If e.AffectedRows = 0 Then
'fai qualcosa
End If
End Sub
Sostanzialmente non è la soluzione definitiva, ma la base su cui lavorare per gestire il problema.
ciao
Furio
http://www.opsi.ws
gmt
Profilo
| Junior Member
98
messaggi | Data Invio:
lun 7 lug 2008 - 17:09
Si, il problema è proprio li'.. ho già questo controllo.. ma la mia domanda era:
come faccio a gestire l'errore ?.. Io vorrei visualizzare il messaggio su una label e restare nella pagina senza aver inserito nulla..
invece mi si carica una pagina di errore cosi'..
Errore server nell'applicazione '/www.notespese'.
--------------------------------------------------------------------------------
The transaction ended in the trigger. The batch has been aborted.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.
Dettagli eccezione: System.Data.SqlClient.SqlException: The transaction ended in the trigger. The batch has been aborted.
Errore nel codice sorgente:
Durante l'esecuzione della richiesta Web corrente è stata generata un'eccezione non gestita. Per informazioni sull'origine e la posizione
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
lun 7 lug 2008 - 18:04
1 soluzione
metti il command insert nel codice con try catch e colleghi l'ex.message alla tua label
2 soluzione
metti sempre il command insert nel codice e inserisci nella sp un parametro in output che ti renda un integer per esempio 0 se va tutto bene 1 se va in rollback
3 soluzione
metti un customvalidator personalizzato che verifica i parametri che devi salvare e se provocano l'errore il customvalidator segnala l'errore e non consente l'operazione.
Furio
http://www.opsi.ws
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 !