2013-10-24 6 views
0

시간 값 (예 : '10 : 30 PM ')을 갖는 문자열을 갖는 데이터의 일부 행이로드 된 gridview가 있습니다. 내가 격자에있는 각 행을 고려 foreach 루프를 사용하여 데이터베이스에 모든 그리드 데이터를 삽입하려고하면 SQL 데이터베이스에 datetime varaible로 시간 값을 갖는 문자열을 삽입하고 싶습니다. 그래서 나는시간 값 문자열을 Datetime 개체로 변환

Convert.ToDateTime(row.Cells(4).Value) 

로 문자열을 변환하려고하지만

문자열이 유효한 날짜 시간으로 인식되지 않은 형식의 예외가 발생한다.

어떤 생각

이 문자열을 날짜로 변환하는

답변

0

날짜/시간 형식을 다른 형식을 인정하고, 따라서 당신은 VB.NET 당신이 정확히 무엇을 의미하는지 알 수 있도록하기 위해 몇 가지 추가 정보를 추가해야하는 조건을 넣습니다. 샘플 (오른쪽/잘못) 대안 :

Dim test1 As Date = Convert.ToDateTime("1-13-2000", New System.Globalization.CultureInfo("en-US")) 'OK 
Dim test2 As Date = Convert.ToDateTime("1-13-2000", New System.Globalization.CultureInfo("en-GB")) 'Error 
Dim test3 As Date = Date.ParseExact("10:30 pm", "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture) 'OK 
Dim test4 As Date = Date.ParseExact("9:30 pm", "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture) 'ERROR 

Convert.ToDateTime

계정에이 CultureInfo 대응의 형식을 취; 지정하지 않으면 주어진 컴퓨터에서 기본값을 사용한다고 가정합니다. 가장 좋은 점은 항상 원하는 문화권을 지정하는 것입니다. 당신이 가진 다른 대안은 예를 들어 ParseExact을 통해 정확한 형식을 말하는 것입니다.

0

당신의 값이 빈 문자열이 될 수 있기 때문에 그것은있을 수 있습니다.

if(row.Cells(4).Value <> null AND row.Cells(4).Value <> string.Empty) 
    Convert.ToDateTime(row.Cells(4).Value) 
관련 문제