Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Посоченото предаване не е валидна грешка при използване на C#

cmd1.ExecuteScalar() не връща цяло число в кутия. Присвоете го на обект и го погледнете в програмата за отстраняване на грешки, за да видите какво всъщност представлява.

Предполагам, че ще връща Decimal или Double и трябва да направите:

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

Или:

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

[РЕДАКТИРАНЕ в отговор на въпрос в коментарите по-долу]

За да запазите десетичната стойност, просто направете следното:

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

Ако трябва, можете да прехвърлите десетичната запетая на двойно:

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. Получаване на динамично генерирана обобщена таблица във времева таблица

  2. Как да използвате use if..else в Data Flow въз основа на стойности на потребителски променливи в SSIS

  3. DateTime заявка само за година в SQL Server

  4. Как да трансформирате данни от редове въз основа на конкретна колона в друга структура от данни

  5. UDT като параметър в EF4 заявка