2011-02-16 4 views
1

다음 함수에서 "잘못된 캐스트 예외"가 표시되는 이유는 무엇입니까? 구체적으로이 오류 YYYYMMDD "문자열에서 변환" " '정수'를 입력하기가 유효하지 않습니다."입니다 내가 그렇게 형식 "YYYYMMDD"를 문자열로 데이터베이스에서 날짜 시간 값을 변환하려고캐스트 예외가 잘못되었습니다. 확실하지 않은 이유

예를 들어 1985 년 10 월 22 일은 "19851022"가됩니다.

dbReader(fieldName).ToString("yyyyMMdd") 

여기 당신이 ObjectToString를 호출하는 것처럼

Private Function GetDBReaderDateValue(ByVal dbReader As IDataReader, ByVal fieldName As String) As String 

    If dbReader(fieldName) Is DBNull.Value Then 
     Return "" 
    Else 
     Return dbReader(fieldName).ToString("yyyyMMdd") 
    End If 

End Function 

답변

1

fieldName이 DateTime이 아니면 변환이 실패합니다. 먼저 날짜 시간에 던져보십시오 :

Dim dt As Date 
If Date.TryParse(dbReader(fieldName).tostring, dt) Then 
    Return dt.ToString("yyyyMMdd") 
Else 
    Throw New ArgumentException("GetDBReaderDateValue needs a Date-Column as parameter!") 
End If 
+0

할까요하지 Date.TryParse 수 Date.TryParse (dbReader (fieldName에)로 .toString, DT) 물론 – webworm

+0

이 있었다 오타 (NO IDE). 내 대답을 편집했습니다. –

+0

어쨌든 나는 당신의 요점을 본다. 도와 주셔서 감사합니다. – webworm

1

것 같다 ... 전체 기능입니다 ... 그리고 String 매개 변수를 오버로드가 없습니다. 먼저 DateTime으로 전송해야합니다.

관련 문제