Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Chiudere una connessione

    ciao a tutti io popolo un datagrid tramite un funziona funziona tutto ok...come faccio a chiudere al connessione?
    se la chiudo prima non riesco a passargli nulla come ritorno perchè oggetto è chiuso..
    ma se faccio come qui sotto, il datagrid viene popolato ..ma secondo me rimane aperto la connessione e il SqlDataReader..
    Come fare?


    codice:
        Dim MyCat As SqlCommand
    
    
            'Creo un oggetto per la connessione
            Dim MyConnection As SqlConnection = New SqlConnection
    
            'Assegno valori alle variabili
            Sqlview = "Sp_SottoCategoria_Abbonamenti"
            StrConn = (ConfigurationSettings.AppSettings("conn"))
    
            'Apro la connessione
            MyConnection.ConnectionString = StrConn
    
    
            'Creo un DataAdapter per selezionare i valori della View
            MyCat = New SqlCommand(Sqlview, MyConnection)
    
    
            'Richiamo la mia stored Procedure
            MyCat.CommandType = CommandType.StoredProcedure
            'Defenisco i parametri che devo passare alla stored
    
            Parametro = MyCat.Parameters.Add("@ID_Sottocategoria", SqlDbType.TinyInt)
    
            MyCat.Parameters("@ID_Sottocategoria").Value = CInt(ID_Sott)
    
            MyConnection.Open()
    
            Dim objdatareader As SqlDataReader
            objdatareader = MyCat.ExecuteReader(CommandBehavior.CloseConnection)
    
            Return (objdatareader)

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    objdatareader.Dispose()
    MyCat.Dispose()
    MyConnection.Dispose()
    (non sono sicuro ke tutti e 3 le classi abbiano il metodo dispose.. se in alcune nn c'è prova ad usare Close().. se neanke close c'è te le tieni aperte )

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Non hai bisogno di chiudere la connessione esplicitamente perchè, quando chiudi il reader, questa instruzione:
    MyCat.ExecuteReader(CommandBehavior.CloseConnectio n)

    fa chiudere prima la connessione.
    Inoltre, anche se non chiudi il reader, ho notato (ma forse mi sbaglio :master: ) che il sistema, quando fa il DataBind, cioè quando ha consumato il reader, lo chiude da se.

    Detto questo, penso però che non convenga mai utilizzare una funzione che restituisca un reader

    Pietro

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.