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

Discussione: Dubbi sulle stringhe

  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    Dubbi sulle stringhe

    Allora, supponendo di voler recuperare un valore passato da una queryString, io con ASP 3.0 facevo in questo modo:

    Dim strValore
    strValore = Request.QueryString

    Response.Write("Il valore della stringa è" & strValore)

    vorrei fare la stessa cosa con VB.NET, ma nel momento in cui vado ad utilizzare l'operatore di concatenazione "&" oppure "+" mi da un errore e quindi, riesco solo a recuperare il valore della stringa, senza scrivere il messaggio che avrei scritto in modo molto semplice con ASP 3 come ho evidenziato sopra. Qualcuno mi potrebbe gentilmente spiegare come fare con VB.NET?Thk
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2
    Io ti consiglio di usare il Trace.Write per visualizzare i valori di variabili e QueryString.

    Il tuo codice è esatto. Al max dovresti fare così ma sono cavilli nulla di che (quello in rosso è aggiunto da me)
    codice:
    Dim strValore as string 
    strValore = Request.QueryString("valorequerystring")  
    
    Response.Write("Il valore della stringa è" & strValore)

    Qui sotto ti trascrivo una parte dei miei appunti riguardanti stringhe e messaggi di tracciamento. Magari ti possono interessare.
    Ciaoz


    Direttamente dal mio libro degli appunti

    Utilizzare Response.Write per concatenare stringhe
    Concatenare le stringhe è un operazione che richiede relativamente molte risorse. Ad esempio, quando si concatenano una stringa da 20byte e un'altra da 30byte, il codice run-time deve assegnare una nuova area di 50byte, copiarvi tutti i 50bytes, regolare un indicatore affinché indichi la nuova area e successivamente rilasciare l’area dei dati originali.

    Al contrario, il metodo Response.Write, offre servizi di buffering e concatenamento molto efficienti. Perciò, se si devono scrivere più stringhe consecutivamente nello stream Response, è più efficiente codificare una istruzione Response.Write per ciascuno rispetto a codificare un’istruzione Response.Write per l’intera serie di concatenamenti. Ossia,

    Response.Write(“Testa=”)
    Response.Write(variabile1)
    Response.Write(“, Fatto”)

    È più efficiente di :

    Response.write(“Testa=” & Variabile1 & “,Fatto”)

    Scrivere dati di tracciamento
    Se si desidera conoscere il valore di una variabile è spesso utile visualizzarlo in un messaggio scritto nell'oggetto Trace.

    codice:
    Trace.Write("La Variabile Pippo ha valore =" &VariabilePippo)
    Naturalmente per visualizzare il messaggio si deve specificare Trace="True" nella direttiva @Page. L'aspetto positivo di questa agevolazione è che non si devono rimuovere i vari Trace.Write per rimuovere le istruzioni, ma basta disattivare il Tracing nella direttiva @Page.

  3. #3
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Ok.. grazie 1000. Il mio libro della Apogeo, almeno fino ad ora non parla del metodo Write nella classe Trace.
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  4. #4
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Oppure utilizzare un StringBuilder, nato apposta per ovviare ai problemi sopracitati da JC_.

    Dim sb As StringBuilder = New StringBuilder("")
    sb.append("pippo")
    label.Text = sb.ToString()
    oppure:
    Response.Write(sb.ToString())

    Ciao
    Legnetto

  5. #5
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Scusate: ma non era molto ma molto più semplice dare la possibilità di concatenare le stringhe come si faceva con ASP 3?A cosa è dovuto questo cambiamento, e soprattutto, a che scopo è stato fatto così?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  6. #6
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Puoi ancora fare come facevi prima, solo che quando aggiungevi un pezzo di stringa veniva creata ogni volta una nuova istanza della stessa.
    Tutti i controlli .NET vengono creati concatenando delle stringhe composte da html, capisci che in pagine impegnative il problema delle prestazioni si faceva sentire, di conseguenza sono stati creati controlli appositi per ovviare il problema.
    Ciao
    Legnetto

  7. #7
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Se recupero solo 1 parte della querystring va, se invece voglio recuperarla tutta così:


    Sub Page_Load(obj as object, e as eventargs)
    Dim strValore as string
    strValore = Request.QueryString
    Response.Write("Il valore della stringa è" & strValore)
    End Sub

    mi dice:

    BC30311: Impossibile convertire il valore di tipo "System.Collections.Specialized.NameValueCollectio n" in "String".
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  8. #8
    Sub Page_Load(obj as object, e as eventargs)
    Dim strValore as string
    strValore = Request.QueryString
    Response.Write("Il valore della stringa è" & strValore)
    End Sub


    Request.QueryString("??????????")

    Tu non stai richiamando un bel niente

    prova a fare così

    Request.QueryString("ID")

    e apri la pagina così

    www.dominio.it/pagina.aspx?id=1

    Vedi che ora ti butta fuori

    Il valore della stringa è 1

  9. #9
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Se rimpiangi asp3 puoi anche fare così:

    Dim coll As NameValueCollection
    Coll = Request.Form
    'che poi recuperi così:
    Response.write(Coll("nome_valore_che_passi_nella_Q ueryString"))
    Ciao
    Legnetto

  10. #10
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Questo l'ho capito!Ma se io vorrei recuperare l'intera stringa, e per intera intendo tutto quello che segue il punto interrogativo, cone ASP 3.0 bastava scrivere solo Request.QueryString, l'equivalente, in ASP.NET qual'è?

    Originariamente inviato da dwb
    Se recupero solo 1 parte della querystring va, se invece voglio recuperarla tutta così:


    Sub Page_Load(obj as object, e as eventargs)
    Dim strValore as string
    strValore = Request.QueryString
    Response.Write("Il valore della stringa è" & strValore)
    End Sub

    mi dice:

    BC30311: Impossibile convertire il valore di tipo "System.Collections.Specialized.NameValueCollectio n" in "String".
    ~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.