황당한 일을 겪었다
excel을 이용해서 DB업데이트 하는 부분이 있었는데
excel에는 잘 등록 됐는데 DB에서는 짤려 들어갔다
원인을 살펴보니
OLEDB문제였다
해당 Excel파일을 열고 DataSet을 만들때 기본으로 설정된 윗 8줄에 가장큰 글자수를 DataType 길이로 잡는다.(256문자보다 작으면 256)
이리하여 9번째줄에 가장 긴 문장이 있을경우 문제가 생긴다.
해결방법
TypeGuessRows의 값을 변경 하려면 다음과이 같이 하십시오.
- 시작 메뉴에서 실행을 클릭 합니다. 실행 대화 상자에서 Regedt32입력 한 다음 확인 을 누릅니다.
- 레지스트리 편집기에서 다음 키를 엽니다.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
참고 64 비트 시스템의 경우 해당 키는 다음과 같습니다.HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\engines\excel - TypeGuessRows 를 두 번 클릭.
- DWORD 편집기 대화 상자에서 자료에서 10 진수 를 클릭 합니다. 0 값 데이터에 대 한 포괄 시간 16 사이의 값을 입력 합니다.
- 확인누른 다음 레지스트리 편집기를 종료 합니다.
(레지스트리 수정 없이)이이 문제를 해결 하려면 두 번째 방법은 있는지는 255 문자 데이터 필드를 행 이상 인지 확인 하는 것, 원본 데이터 파일 처음 8 행에 표시 됩니다.