Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Il cast specificato non è un errore valido usando C#

cmd1.ExecuteScalar() non restituisce un intero boxed. Assegnalo a un oggetto e guardalo nel debugger per vedere di cosa si tratta realmente.

Immagino restituirà un decimale o un doppio e devi fare:

Int32 result = (Int32)(double)cmd1.ExecuteScalar();

Oppure:

Int32 result = (Int32)(Decimal)cmd1.ExecuteScalar();

[MODIFICA in risposta a una domanda nei commenti di seguito]

Per mantenere il valore decimale, procedi come segue:

Decimal result = (Decimal) cmd1.ExecuteScalar();

Se necessario, puoi convertire il decimale in un double:

double result = (double)(Decimal) cmd1.ExectuteScalar();