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

Angivet cast er ikke gyldig fejl ved brug af C#

cmd1.ExecuteScalar() returnerer ikke et indrammet heltal. Tildel det til et objekt, og kig på det i debuggeren for at se, hvad det egentlig er.

Jeg gætter på, at det vil returnere en decimal eller en dobbelt, og du skal gøre:

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

Eller:

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

[EDIT som svar på et spørgsmål i kommentarerne nedenfor]

For at beholde decimalværdien skal du blot gøre dette:

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

Hvis du havde brug for det, kunne du kaste decimalen til en dobbelt:

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


  1. Django emulerer databasetriggeradfærd ved masseindsættelse/opdatering/sletning

  2. Castle Activerecord fejl er "relation eksisterer ikke" på Postgresql?

  3. SQL:Parse kommasepareret streng og brug som join

  4. Mysql regex fejl #1139 ved hjælp af bogstavelig -