출력 매개 변수 pf 형식이 numeric(18,0)
인 SQL Server에 저장 프로 시저가 있습니다. C#을에서 나는 SqlDbType.Decimal
와 SqlParameter
을 만들고 내가 0 여기C#에서 저장 프로 시저에 매개 변수 전달 : 숫자 (18, 0)에 사용할 SQLDbType
18 규모로 정밀도를 설정하는 것은 내 코드입니다 :
queryParameters[2] = new SqlParameter("@Id", SqlDbType.Decimal);
queryParameters[2].Precision = 18; // # digits
queryParameters[2].Scale = 0; // # decimals
queryParameters[2].Direction = ParameterDirection.Output;
저장 프로 시저가 제대로 실행되고, 제대로 출력 매개 변수를 반환 되나 다음과 같이 C#의 긴 변수로 구문 분석 할 때 :
long id = (long)queryParameters[2].Value;
변환 할 수 없다고 말합니다.
그러나 SqlParameter
유형을 SqlDbType.Bigint
으로 수정하면 작동합니다.
그래서 내가 정확히 SqlDbType.BigInt
으로 전달하면 되겠습니까? 또는 SqlDbType.Decimal
으로 전달하고 long 대신 decimal C# 변수를 사용하는 것이 더 낫습니다.
SqlDbType.Decimal
로 전달하고 아래하고 또한 노력하고 있습니다 :
decimal id = (decimal)queryParameters[2].Value;
그래서 접근 방식이 최선의이 숫자가 소수점없이 정수는 것을 고려? 이 데이터베이스에 numeric(...)
로 정의되어있는 경우
동의합니다. 감사. – user1624552