Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    [C#] Problema con query INSERT parametrica

    Ho questo codice:


    codice:
    using (SqlCommand cmqQuery = new SqlCommand("SELECT COUNT(*) FROM Tabella_Account WHERE Username=@Username OR Email=@Email", conn))
                        {
                            cmqQuery.Parameters.Add(pUsername);
                            cmqQuery.Parameters.Add(pEmail);
                            int count = (int)cmqQuery.ExecuteScalar();
                            lblUsername.Text = count.ToString();
    
    
                            if (count == 0)
                            {
                                try
                                {
                                    SqlParameter insertUsername = new SqlParameter();
                                    insertUsername.ParameterName = "@insertUsername";
                                    insertUsername.DbType = DbType.String;
                                    insertUsername.Direction = ParameterDirection.Input;
                                    insertUsername.Value = txtUsername.Text;
    
    
                                    SqlParameter insertEmail = new SqlParameter();
                                    insertEmail.ParameterName = "@insertEmail";
                                    insertEmail.DbType = DbType.String;
                                    insertEmail.Direction = ParameterDirection.Input;
                                    insertEmail.Value = txtEmail.Text;
                                   
                                    SqlCommand cmdInsert = new SqlCommand("INSERT INTO Tabella_Account(Username, Email) VALUES(@insertUsername, @insertPassword", conn);
                                    
                                    cmdInsert.Parameters.Add(insertUsername);
                                    cmdInsert.Parameters.Add(insertEmail);
    
    
                                    
                                    cmdInsert.ExecuteNonQuery();
                                }
    
    
                                catch (Exception error)
                                {
                                    Response.Write(error.ToString());
    
    
                                }
    
    
                                
                            }
    
    
                        }

    Quando lo mando in esecuzione mi da il seguente errore:


    System.Data.SqlClient.SqlException (0x80131904): Sintassi non corretta in prossimità di '@insertEmail'.


    Cosa sbaglio???
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,287
    Nella seconda query il parametro è @InsertPassword non @insertEmail

  3. #3
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Corretta la query, cambiato l'errore:

    System.Data.SqlClient.SqlException (0x80131904): Sintassi non corretta in prossimità di '@insertEmail'

    Codice:
    codice:
    
    
    codice:
    using (SqlCommand cmqQuery = new SqlCommand("SELECT COUNT(*) FROM Tabella_Account WHERE Username=@Username OR Email=@Email", conn))
                        {
                            cmqQuery.Parameters.Add(pUsername);
                            cmqQuery.Parameters.Add(pEmail);
                            int count = (int)cmqQuery.ExecuteScalar();
                            lblUsername.Text = count.ToString();
    
    
                            if (count == 0)
                            {
                                try
                                {
                                    SqlParameter insertUsername = new SqlParameter();
                                    insertUsername.ParameterName = "@insertUsername";
                                    insertUsername.DbType = DbType.String;
                                    insertUsername.Direction = ParameterDirection.Input;
                                    insertUsername.Value = txtUsername.Text;
    
    
                                    SqlParameter insertEmail = new SqlParameter();
                                    insertEmail.ParameterName = "@insertEmail";
                                    insertEmail.DbType = DbType.String;
                                    insertEmail.Direction = ParameterDirection.Input;
                                    insertEmail.Value = txtEmail.Text;
                                   
                                    SqlCommand cmdInsert = new SqlCommand("INSERT INTO FANTAWIT_Account(Username, Email) VALUES(@insertUsername, @insertEmail", conn);
                                    
                                    cmdInsert.Parameters.Add(insertUsername);
                                    cmdInsert.Parameters.Add(insertEmail);
    
    
                                    
                                    cmdInsert.ExecuteNonQuery();
                                }
    
    
                                catch (Exception error)
                                {
                                    Response.Write(error.ToString());
    
    
                                }
    
    
                                
                            }
    
    
                        }
    
    
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  4. #4
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,287
    Manca una parentesi finale nella seconda query

  5. #5
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    Manca una parentesi finale nella seconda query
    Dove di preciso? Sto sbattendo la testa da due giorni!

    P.S. Trovata:

    codice:
    SqlCommand cmdInsert = new SqlCommand("INSERT INTO Tabella_Account(Username, Email) VALUES(@insertUsername, @insertEmail)", conn);
    Ultima modifica di dwb; 22-01-2015 a 12:25
    ~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.