데이터 레코드를 검색하고 모니터링 도구에 표시하기 위해 Excel 파일을 쿼리하고 있습니다. 문제는 나는 다음과 같은 요청과 함께, 해당 ID를 가진 레코드를 선택하려고 할 때마다, 그것은 쿼리 실행 오류가 발생한다는 것입니다 :C#을 사용하여 Excel 파일을 쿼리하고 숫자 셀을 사용하여
이 말해
을 ExecuteCommandTextErrorHandling을 그의 유형 쿼리 및 대상 셀이 호환되지 않습니다. 그 세포 유형은 표준 기본 유형입니다 때문에 ID 열이 할 수있는 것보다 더 많은 단지 숫자가 포함
SELECT TOP 20 [Fields...]
FROM [RECORD$]
WHERE (([id] = '1'))
처럼
내 요청을 보인다.
내 질문은입니다. 이전에 유형을 모른 채 레코드를 가져올 수 있습니까?
필자는 열 유형을 적용해야합니까? 예외를 catch하고 따옴표없이 다시 시도해야합니까? 여기
는 Excel 파일 내 연결 문자열 사전에public static DataTable queryXlsFile(String query, OleDbConnection dbConnection)
{
OleDbDataAdapter dbCommand = new OleDbDataAdapter(query, dbConnection);
DataTable dt = new DataTable();
dbCommand.Fill(dt);
return dt;
}
Provider=Microsoft.ACE.OLEDB.12.0; data source=C:\\test\\321.xls; Extended Properties=\"Excel 8.0;HDR=Yes;\";
감사를 조회하는 데 사용되는 코드입니다.
완료하지만 레코드 시트에 숫자 ID 만있는 경우에도 여전히 예외가 throw됩니다. 지금은 그냥 인용 부호로 시도하기 때문에 예외가 발생하면 다시 시도하지 않습니다. – Oflocet