Visualizzazione dei risultati da 1 a 6 su 6

Discussione: ExecuteScalar errore

  1. #1
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866

    ExecuteScalar errore

    codice:
            MySQL = "SELECT COUNT(*) FROM user1 WHERE username = '" + txtUsername.Text + "'"; 
            MyRs = "SELECT Password FROM user1 WHERE username = '" + txtUsername.Text + "'"; 
    
    		 MyConn = new OdbcConnection("DRIVER={MySQL ODBC 5.1 Driver};SERVER=xxx.xxx.xxx.xxx;Port=3306;DATABASE=xxxxxxx;USER=xxxxxx;PASSWORD=xxxxxxx;");
            MyCount = new OdbcCommand(MySQL, MyConn); 
            MyPassword = new OdbcCommand(MyRs, MyConn); 
            
            MyConn.Open(); 
    
            IntUsernameCount = (int) MyCount.ExecuteScalar();
    ottengo l'errore:

    System.InvalidCastException: Specified cast is not valid.

  2. #2
    guest.1
    Guest
    ciao, io uso cosi:

    codice:
    public bool isNickEmailInUso(string Email)
        {
            OdbcConnection conn = new OdbcConnection(connectionString);
            OdbcCommand checkUser = new OdbcCommand("SELECT COUNT(*) FROM newsletter WHERE email=?", conn);
            conn.Open();
            checkUser.Parameters.AddWithValue("?", Email);
            int rows = Convert.ToInt32(checkUser.ExecuteScalar());
            conn.Close();
            checkUser.Dispose();
            return (rows > 0);
        }
    e nel click del button si usa cosi:
    codice:
     string Email = txtEmail.Text;
     if (isNickEmailInUso(Email) == true)
            {
                lblMsg.Text = "Email già in uso";
            }
            else
            {
    // Qui tutto l'evento che inserisce i dati nel db senza i doppioni delle email.
    }
    Vedi se ti va bene.

    ciao.

  3. #3
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Se sostiuisco
    IntUsernameCount = 1;

    a

    IntUsernameCount = (int) MyCount.ExecuteScalar();

    ovviamente va ok;
    significa che non recupera nulla dal modulo oppure ExecuteScalar da errore?


  4. #4
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Ho risolto sostituendo

    ExecuteNonQuery();

    a

    ExecuteScalar();



  5. #5
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Ma volendo capire come mai non va ExecuteScalar(); ...
    Il campo username della tabella user1 è di tipo TEXT nel database MYSQL.


  6. #6
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Risolto così:

    codice:
    int IntUsernameCount = Convert.ToInt32(MyCount.ExecuteScalar());
    invece di:

    codice:
    IntUsernameCount = (int) MyCount.ExecuteScalar();

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.