2014-05-17 5 views
0

나는 reader.GetValue(i)datetime 필드 인 경우, 때때로 01/01/2014 0:00:00과 다른 시간을 반환 C# SqlCeDataReader getValue이 같은 쿼리에 다른 형식을 반환

String sqlQuery = "SELECT * FROM table"; 
SqlCeDataReader reader = ConectorSQLCE.consultar(rutaArchivo, sqlQuery); 
String value = ""; 

try 
{ 
      while (reader.Read()) 
      { 
       for (int i = 0; i < reader.FieldCount; i++) 
       { 

        if (reader.GetValue(i) == DBNull.Value) 
         value += "*"; 
        else 
        { 
         value += reader.GetValue(i).ToString(); 
        } 
       } 
      } 
} 
01/01/2014 12:00:00 a.m.

왜이 작업을 수행 다음과 같은 코드를 반환 한 우연히 있다? 문자열 값은 해시 코드에 사용되므로 동일한 행에 대해 다른 해시가 있습니다.

답변

0

그 이유는 확실하지 않지만 시간 필드가 항상 같은 경우 왜 .ShortDateString()으로 변환하면 불일치에 대해 걱정할 필요가 없습니다. 또한 각 열을 이름으로 호출하여 사용하면 SQL 측에서 변환 할 수 있습니다. convert(varchar,dateField,101)

+0

코드는 exe 파일에 있으며 나중에 다시 작성할 수 없습니다. 그래서 처음에 나는 그것이 일어날 수있는 이유를 알고 싶습니다 –

+0

당신은 데이터베이스에 저장된 것을 검사 해 보았습니까? 그것은 DateTime 필드입니까, 아니면 varchar 유형이고 방금 시작된 다르게 저장 되었습니까? –

+0

은 datetime 필드입니다. 데이터베이스는 컴팩트 버전입니다. –