Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pemeran yang ditentukan bukan kesalahan yang valid menggunakan C #

cmd1.ExecuteScalar() tidak mengembalikan bilangan bulat kotak. Tetapkan ke objek dan lihat di debugger untuk melihat apa itu sebenarnya.

Saya kira itu akan mengembalikan Desimal atau ganda, dan Anda perlu melakukan:

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

Atau:

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

[EDIT sebagai tanggapan atas pertanyaan di komentar di bawah]

Untuk mempertahankan nilai desimal, lakukan saja ini:

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

Jika perlu, Anda dapat menggandakan desimal:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Versi SQL Server mana yang didukung LINQ to SQL?

  2. Hasil SQL dinamis menjadi tabel temp dalam prosedur SQL Stored

  3. Rusak SQL Server XML dengan karakter Unicode

  4. Perbaiki Msg 512 "Subquery mengembalikan lebih dari 1 nilai" di SQL Server

  5. Apa arti dari awalan N dalam pernyataan T-SQL dan kapan saya harus menggunakannya?