nel mio programma, ho bisogno di verificare se esiste già un record nel database nella tabella utilizzando l'istruzione if
. usando C# sto cercando di farlo attraverso una connessione sql. come suppongo che il comando ExecuteNonQuery();
restituisca un valore intero, se suppongo sia vero, voglio sapere quale valore è true per sapere che un determinato record esiste nella tabella o meno. Ecco un esempio del mio codice:Verificare se il record in una tabella esiste in un database tramite ExecuteNonQuery
using (SqlConnection sqlConnection = dbUtil.GetSqlConnection(dbUtil.GetConnectionStringByName("NonConnectionString")))
{
using (SqlCommand sqlCommand = new SqlCommand("SELECT * from users where user_name like 'Adam' AND password like '123456'", sqlConnection))
{
sqlresult = sqlCommand.ExecuteNonQuery();
}
}
considerando SQLResult è stato inizializzato in precedenza nella principale int sqlresult;
così mi piacerebbe sapere, che se l'utente 'Adam' esiste nel database o meno. e se esiste, allora voglio procedere con un 'se' dichiarazione dicendo per esempio:
if(sqlresult == 0)
{
MessageBox.Show("Adam exists!");
}
in modo che io proprio non lo so il numero intero che dovrebbe tornare, e io non sono neanche sicuro che questo è il modo giusto per farlo.
grazie.
Vale la pena notare che sqlCommand.ExecuteScalar() restituisce un oggetto non un int: http://msdn.microsoft.com/en-us/library/system.data. sqlclient.sqlcommand.executescalar (v = vs.110) .aspx – TonE
grazie per questo ottimo esempio, ho una domanda, dal tuo codice "using", è l'oggetto cast mancante a int dalla variabile userCount? o non è necessario? – WhySoSerious
@WhySoSerious: grazie per averlo notato, l'ho aggiunto da quando mancava. Come @TonE ha già menzionato è richiesto perché 'ExecuteScalar' restituisce' oggetto'. –