Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: App_Code Class

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    14

    App_Code Class

    Ciao a tutti!
    Vorrei che da una classe presente in App_Code mi fossero ritornati dei valori da poter poi essere utilizzati in un'altra pagina, ma non so come fare.

    La classe dovrebbe essere di questo tipo:

    codice:
    Public Class MyClass
    
      Public Shared Function MyFunction()
    
        Dim Connection As New SqlConnection(ConfigurationManager.ConnectionStrings("SITEDB").ConnectionString)
        Dim Command As SqlCommand = New SqlCommand( _
              "SELECT Campo1, Campo2, Campo3 FROM Tabella WHERE Id = '1'", Connection)
        Connection.Open()
        Dim Reader As SqlDataReader = Command.ExecuteReader()
    
        'a questo punto vorrei recuperare il valore del Campo1, del Campo2 e del Campo3
        'MyValue1 = Campo1
        '...
    
        Reader.Close()
        Connection.Close()
    
      End Function
    
    End Class
    Una volta recuperati i valori dal database vorrei che fosse possibile, in una qualsiasi pagina, poter intercettare i valori recuperati dalla funzione.
    Per esempio:
    codice:
    If MyClass.MyFunction.MyValue1 = "" Then
    ...
    Mi aiutate? Grassie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    14
    Nessuno?
    Please...

  3. #3
    codice:
    Reader.GetString(0)
    Reader.GetString(1)
    Reader.GetString(2)
    questo se tutti e 3 i campi sono stringa.
    altrimenti devi utilizzare

    codice:
    GetBoolean
    GetByte
    GetBytes
    GetDateTime
    GetDecimal
    .... [etc]
    Esempio
    codice:
    // Recupera il valore Pippo (SqlDataType bigint(8))
    long valore = Reader.GetInt64(0)
    la tipologia dei campi è la stessa specificata all'interno della tabella di SqlServer.

    Per maggiori informazioni puoi guardare questo link.

    Se hai altri dubbi fai un fischio o chiama sul messanger.
    Ciao bella!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    14
    Grazie Jc_, mi hai risolto un grosso problema!

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    14
    Scusa Jc_, ma c'è qualcosa che non capisco...
    In questo modo mi da degli errori, dove sbaglio?
    codice:
    Public Class MyClass
    
      Public Shared Function MyFunction()
    
        Dim Connection As New SqlConnection(ConfigurationManager.ConnectionStrings("SITEDB").ConnectionString)
        Dim Command As SqlCommand = New SqlCommand( _
              "SELECT Campo1, Campo2, Campo3 FROM Tabella WHERE Id = 1", Connection)
        Connection.Open()
        Dim Reader As SqlDataReader = Command.ExecuteReader()
    
        Dim strCampo1 As String = Reader.GetString(0)
        Dim strCampo2 As String = Reader.GetString(1)
        Dim strCampo3 As String = Reader.GetString(2)
    
        Reader.Close()
        Connection.Close()
    
      End Function
    
    End Class
    E poi se voglio recuperare il valore questo sintassi non funziona:

    MyClass.MyFunction.strCampo1


  6. #6
    Ciao bella,
    credo proprio di essermi dimenticato di dirti di utilizzare sempre il metodo .Read di SqlDataReader prima di recuperare valori.

    Quindi il tuo codice si trasforma in questo modo.

    codice:
        Dim Reader As SqlDataReader = Command.ExecuteReader()
    
    Dim strCampo1 As String = string.empty()
    Dim strCampo2 As String = string.empty()
    Dim strCampo3 As String = string.empty()
    
    While Reader.Read()
        strCampo1 = Reader.GetString(0)
        strCampo2 = Reader.GetString(1)
        strCampo3 = Reader.GetString(2)
    End While
    
        Reader.Close()
    A questo punto la tua funzione colleziona i valori da te necessari.
    Per ritornare i valori devi necessari devi creare una cosa di questo tipo

    codice:
    	Public Function ChiaraRitornamiQUalcosa(ValoreRitorno as String) as string
    
    	Dim a as string = "a"
    	Dim b as string = "b"
    	Dim c as string = "c"
    
    	Select ValoreRitorno
    	Case a
    	        return(a)
    	Case b
    		return(b)
    	Case c
    		return(c)
    	End Select
    	End Function
    e poi chi da codice chiami la funzione così

    codice:
        Console.WriteLine(ChiaraRitornamiQUalcosa("b"))
        Console.ReadLine()
    in questo modo non fai altro che dire alla tua funzione di ritornarti il valore della variabile b. Quindi, riassumendo, il codice diventa
    codice:
    public module MyModule
    	sub Main
    	Console.WriteLine(ChiaraRitornamiQUalcosa("b"))
        Console.ReadLine()
    	end sub
    	
    	Private Function ChiaraRitornamiQUalcosa(ValoreRitorno as String) as string
    		' connessioni al database
    		' e tutto il resto
    		Dim Reader As SqlDataReader = Command.ExecuteReader()
    		Dim strCampo1 As String = string.empty()
    		Dim strCampo2 As String = string.empty()
    		Dim strCampo3 As String = string.empty()
    		
    		While Reader.Read()
    		    strCampo1 = Reader.GetString(0)
    		    strCampo2 = Reader.GetString(1)
    		    strCampo3 = Reader.GetString(2)
    		End While
    
        Reader.Close()
    
    	Select ValoreRitorno
    	Case "strCampo1"
    		return(strCampo1)
    	Case "strCampo2"
    		return(strCampo2)
    	Case "strCampo3"
    		return(strCampo3)
    	End Select
    	
    	End Function
    end module
    per ricevere il valore di strCampo1 non devi far altro che scrivere

    codice:
    ChiaraRitornamiQUalcosa("strCampo1")
    Ciao

  7. #7
    - non considerate questo post-
    Jc Says: "questi cazz di tab che ti fanno il submit"

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    14
    Grazie Jc_, adesso funziona bene anche se c'è ancora un'eccezione che non so come gestire
    Quando il campo del db è null mi da errore in questa riga:
    codice:
    strCampo1 = Reader.GetString(0)
    Visto che nei campi del db ci possono essere valori null come faccio a gestirli?
    Ciao e ancora grazie!

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    puoi fare prima un controllo tipo

    if valore is dbnull then....

  10. #10
    Originariamente inviato da Chiara82
    Grazie Jc_, adesso funziona bene anche se c'è ancora un'eccezione che non so come gestire
    Quando il campo del db è null mi da errore in questa riga:
    codice:
    strCampo1 = Reader.GetString(0)
    Visto che nei campi del db ci possono essere valori null come faccio a gestirli?
    Ciao e ancora grazie!
    Si, fai come ti ha detto cassano. Il codice è questo.
    Ricordati di applicarlo a tutti i campi di cui si sospetti un possibile valore null.

    codice:
            Dim MyCheck As Boolean
    		MyCheck = IsDBNull(Reader.GetString(0))
    		
    		If MyCheck = True Then
    			' è vuoto e quindi mettigli niente
    			' potresti tornare una stringa vuolta
    		Else
    			' c'è qualcosa
    			strValore1 = Reader.GetString(0)
    		End If
    Fammi sapere se ci siamo riusciti.
    Ciao!

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.