Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    Problema con blocco catch

    Ecco il mio codice:

    codice:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.Sql;
    using System.Data.SqlClient;
    
    
    public partial class connessione : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlConnectionStringBuilder conn = new SqlConnectionStringBuilder();
            conn.DataSource = "localhost\\SQLExpress";
            conn.InitialCatalog = "Daniele";
            conn.IntegratedSecurity = true;
            try
            {
                SqlConnection connessione = new SqlConnection(conn.ConnectionString);
                SqlCommand reader = new SqlCommand("SELECT * FROM Products", connessione);
    
    
                connessione.Open();
                SqlDataReader lettura = reader.ExecuteReader();
                ListBox1.DataSource = lettura;
                ListBox1.DataTextField = "Nome";
                ListBox1.DataValueField = "Cognome";
                ListBox1.DataBind();
                Response.Write("Elementi restituiti: " + ListBox1.Items.Count.ToString());
            }
    
    
            catch (HttpException errore)
            {
                Response.Write(errore.ToString());
            } 
             
            
        }
    }
    Ho provato ad inserire, dopo il "catch", un blocco:

    codice:
    finally
    {
    connessione.Close()
    connessione.Dispose()
    }
    ma l'intellisense di VS non mi propone i metodi Close() e Dispose(), mentre facendo una prova, giusto così, all'interno del blocco try, appena scrivo "connessione", nel menù contestuali i metodi in questione ci sono. Dove sbaglio?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,287
    Non telo propone perchè è definito dentro alla try.
    Devi definire la variabile connessione prima del try/catch.
    Oppure più correttamente al posto della try/catch usi "using" che usa l'oggetto e poi lo rilascia automaticamente in caso di errori.

  3. #3
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    Non telo propone perchè è definito dentro alla try.
    Devi definire la variabile connessione prima del try/catch.
    Oppure più correttamente al posto della try/catch usi "using" che usa l'oggetto e poi lo rilascia automaticamente in caso di errori.
    Mi sono documentato sull'utilizzo della direttiva "using", e sembra essere più conveniente, o quantomeno, fa risparmiare qualche riga di codice, ovvero il Close() e il Dispose(), visto e considerato che si occupa autonomamente di interrompere il flusso e d'invocare il Dispose() automaticamente sull'oggetto quando l'esecuzione del codice è stata completata. Mi faresti la gentilezza di suggerirmi come adattare tale metodo al mio codice? Grazie in anticipo!
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.