Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14

Discussione: goto catch

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Allora, dentro If rs.HasRows Then metti l'istruzione per generare l'errore throw new exception("blabla")

    Il codice va subito dentro il blocco Catch impedendo l'inserimento del record.
    Viene garantita la chiusura della connessione perchè sei dentro il blocco using.

    Dentro il blocco Catch metti il codice per mostrare all'utente il messaggio.

    e.cancel=true non serve (credo )

    comunque, PROVA e fai sapere

    Pietro

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Scusate, non ho capito perche' non puo' fare in questo modo:


    codice:
            Try
                Dim messaggioAlert As String = String.Empty
                Dim strsql As String
                Dim cn = New System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("FLINK").ConnectionString)
    
    
                Using cn
                    cn.Open()
    
                    'Controllo che non ci sia già usern uguale in db -------------------------------
                    strsql = "SELECT op_ID FROM operatori WHERE usern=@usern"
    
                    Dim cmd As New System.Data.SqlClient.SqlCommand(strsql, cn)
                    Dim usern As TextBox = FormView1.FindControl("textuser")
                    cmd.Parameters.AddWithValue("@usern", usern.Text)
                    Dim rs As System.Data.SqlClient.SqlDataReader = cmd.ExecuteReader()
                    ' ---------------------------------------------------------------------------
    
    
                    If rs.HasRows Then
                        messaggioAlert = "Username gia' in uso."
                    Else
                        strsql = "INSERT INTO operatori ........ "
                        Dim cmd2 As New System.Data.SqlClient.SqlCommand(strsql, cn)
                        cmd2.ExecuteNonQuery()
                        messaggioAlert = "Username inserito."
                    End If
    
    
                End Using
    
    
                Dim JScript As String = "alert(messaggioAlert);window.location.href='mypage.aspx';"
                Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "scriptEsitoInsert", JScript, True)
    
    
            Catch ex As Exception
                Throw ex
            End Try

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    E' risaputo che l'uso della gestione degli errori è abbastanza vorace di risorse; perciò la tua soluzione è migliore.


    ps. non userei però il blocco using dentro il blocco try, ma userei solo il blocco try con finally
    Pietro

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    infatti non convince neanche me, mai visto un innesto cosi'.
    al massimo il contrario, il try dentro la using
    Ultima modifica di djciko; 07-06-2016 a 17:56

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.