sql >> Databasteknik >  >> RDS >> Sqlserver

Angiven cast är inte giltigt fel med C#

cmd1.ExecuteScalar() returnerar inte ett inrutat heltal. Tilldela det till ett objekt och titta på det i felsökaren för att se vad det egentligen är.

Jag antar att det kommer att returnera en decimal eller en dubbel, och du måste göra:

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

Eller:

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

[REDIGERA som svar på en fråga i kommentarerna nedan]

För att behålla decimalvärdet gör du bara så här:

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

Om du behövde kan du göra decimalen till en dubbel:

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


  1. exporterar Oracle-databas (skapar en .sql-fil med data)

  2. Benchmarking många PostgreSQL-frågor

  3. Hur man infogar valda kolumner från en CSV-fil till en MySQL-databas med LOAD DATA INFILE

  4. Hur tar man bort dubbletter från kommaseparerad lista med regexp_replace i Oracle?