2010-05-14 2 views
0

프런트 엔드 응용 프로그램 저장 프로 시저를 통해 데이터베이스에 0.15 값을 보내고 있지만 0 값으로 저장됩니다. 왜? 안내해주십시오. 전 C# + ASP.NET + SQL 서버를 사용하고 2008십진수 두 번 SQL 서버 읽기 문제

+3

우리가해야 할 일은 무엇입니까? 크리스탈 볼을 사용하면 도움이됩니까? 해당 부분에 대한 전체 코드 (SP, C# 코드 및 해당 필드의 DDL)를 제공하십시오. 아, 그리고 너에게 합리적인 주제를 주어야 했어. 하나의 질문에 두 번째 노력을 기울이는 것은 어떨까요? – TomTom

+0

** 저장 프로 시저를 호출하는 C# 코드에서 ** (**) ** 테이블 구조, (b) 저장 프로 시저 (해당 매개 변수 목록)의 인터페이스 및 (c) 코드 스 니펫을 표시 할 수 있습니까? ? –

답변

2

에 둥근 얻을 곳이다 당신이 그것을 안으로 저장합니까? 또한 : 저장 프로 시저의 매개 변수에는 해당 값을 전달할 때 사용하는 데이터 형식이 무엇입니까 ??

내 직감 : 예. DECIMAL 당신은 DECIMAL(18,0) -> 18 자리까지를 사용하지만 소수점 뒤에는 아무 것도 사용하지 않습니다. 0.15에서 0으로 자릅니다. DECIMAL을 데이터 유형으로 사용하면 소수점 이하 자릿수를 자동으로 지원하지 않습니다 (많은 SQL 프로그래머가 한 번 실수로 알고있는 경우).

저장된 proc의 매개 변수와 테이블의 열이 모두 부분 값을 허용하는지 확인하십시오. DECIMAL(18,4) 또는 이와 비슷한 것

+1

그건 내 추측 일텐데. – AllenG

+0

오프 소스 십진수 –

+0

@Lalit : 소수점 다음에 ** 숫자가없는 ** DECIMAL = DECIMAL (18,0) **은 ** 작동하지 않습니다. expicitliy DECIMAL (18,2) 또는 이와 유사한 것을 소수점 이하의 자릿수로 지정해야합니다. –

0

나는 당신이하는 int/정수를 가진 코드에서 어딘가에 확신하고 열이 있는가 어떤 데이터 타입 0

+0

아니요. 나는 코드를 바꾼다. –