2013-04-08 2 views
1

데이터베이스에서 발생하는 숫자를 10 진수 형식의 하루 분수로 가져 오려고합니다. 이 시간은 그러나 어떤 상황에서는 null이 될 수 있습니다, 그래서, NAMEL 그것을 차지하기 위해이 방법을 사용하려고하지만 내 응용 프로그램에서 빌드 오류가 점점 오전 : system.TimeSpan '에 가장 적합한 오버로드 된 메서드에 일치 ""10 진수에서 2 진수로 변환 할 수 없습니다"

을 . 이중 ' "'로 '진수

'에서 변환 할 수있는 몇 가지 잘못된 인수"

"에서 Argument4있다 '(더블) .FromDays

누락 된 부분이 있습니까?

time1 = reader.IsDBNull(4) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(4)), 
time2 = reader.IsDBNull(5) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(5)), 
time3 = reader.IsDBNull(6) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(6)), 

답변

2

유형 decimal 암시 적 double로 변환 할 수 없습니다. 명시 적으로 캐스팅 할 수 있습니다.

time1 = 
    reader.IsDBNull(4) ? 
    TimeSpan.Zero : 
    TimeSpan.FromDays((double)reader.GetDecimal(4)) 

십진수는 일 수를 나타내는 DB 유형의 경우 비정상적인 선택입니다. 나는 그 열이 실제로 그것을 나타내는 지 확인하도록 권합니다.

+0

내 쿼리에 문제가있는 것으로 나타났습니다. 필요한 왼쪽 결합을 수행하지 않았습니다. 하지만 명시 적 이중 캐스트 방법을 사용해 주셔서 감사합니다. – Lorenzo

관련 문제