Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30

    Ugualianza fra stringhe? c#

    Ciao a tutti, non mi funziona l'ugualianza (dr["nome"] == "gianluca"), immagino perchè cerco di confrontare un Object con una stringa....giusto? In caso come faccio a rendere vera questa ungualianza e far entrare nell'if il mio script? Scusate la banalità, ma sono alle prime armi.

    if (dr.HasRows)
    {

    while (dr.Read())
    {



    if (dr["nome"] == "gianluca")
    {
    Response.Write("Nella tabella è presente il nome " + dr["nome"] + "
    ");

    }



    }
    }

    Grazie.

  2. #2
    dr[""] ti fornisce un Object che non puo' essere == ad una stringa, quindi è meglio se l' eguaglianza la fai con il metodo ToString() del reader ...
    Stringa con stringa.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30
    Ciao Raffaeu,

    grazie della risposta
    if (dr.HasRows)
    {

    while (dr.Read())
    {



    string nome = (dr["nome"].ToString());

    if ( nome == "gianluca")
    {
    Response.Write("Nella tabella è presente il nome " + dr["nome"] + "
    ");

    }



    }
    }



    ma non mi entra nell'if cmq....immagino che sbaglio ancora....help.

  4. #4
    dr.HasRow risponde true dopo che inizi a leggere ...
    Togli quell' if che non serve e riprova.
    Inoltre, se hai già fatto cast del DR con la variabile nome, beh da adesso in poi usa quella anche nella MsgBox.

  5. #5
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    guarda che per l'operatore == queste due stringhe "gianluca" e "Gianluca" sono diverse !!
    Utilizza il Compare per avere un confronto case insensitive..
    I got the remedy

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30
    Grazie per le risposte.

    Conosco l'esistenza del Case Sensitive . Lo script che vedete sopra è uno script di prova, quindi senza probabilmente alcun senso logico, se non quello di confrontare un Object con una stringa. PEr aggirare il problema credo (non ho provato) che potrei eseguire la query su MsSql direttamente con la stringa senza scandagliare tutto il db.Sbaglio? Resta il fatto che non riesco a confrontare i due elementi.

  7. #7
    Se li vuoi confrontare a colpo sicuro senza considerare il case puoi tranquillamente usare una delle utility della classe String, come ad esmepio, string.ToUpperCase.
    Nel nostro caso:

    codice:
     string nome = (dr["nome"].ToString().ToUpperCase());
    
    if ( nome == "GIANLUCA")
    {
    Response.Write("Nella tabella è presente il nome " + nome + "
    ");
    
    }
    Per la seconda richiesta, beh li devi costruire la query con il parametro per la WHERE.
    CHe io ti consiglio cosi' non stressi inutilmente il Database.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30
    Grazie infinite. Ci provo e casomai riposto.

  9. #9
    Per le comparazioni di questo genere sarebbe meglio usare lo Equals (classe String).

    Non sono sicuro succeda anche qui ma in java per esempio un confronto tipo

    varStringa1 == varStringa2

    fa un confronto tra gli hash delle due variabili, non tra il contenuto delle stesse.

    xxx

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30
    Ecco, visto che C# dovrebbe assomigliare come sintassi a Java ho pensato la stessa cosa.

    In java come faresti?

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.