이 주제와 관련된 다른 스레드가 있음을 알고 있지만 아직까지는 내 필요만큼 구체적이지는 않습니다.SQL Server로 가져 오기 전에 CSV 파일 유효성 확인
내가 관리하는 SQL Server 데이터베이스로 가져올 CSV 파일이 있습니다. 인간에 의해 만들어지기 때문에 너무 많은 열, 잘못된 데이터 형식, 손상된 헤더 등의 오류가있을 수 있습니다.
사용자의 파일을 서버의 디렉토리에 수신 할 수있는 웹 양식을 가지고 있으며 그 다음 줄로 문자열을 읽고 셀별로 파싱 한 다음 정확한 셀 수를 확인한 후 이동합니다 다음 줄로.
데이터 유형 및 범위의 유효성을 검사하는 데있어 가장 좋은 방법이 확실하지 않습니다. 숫자 형식에 대한 수동 범위 검사와 같은 일을하는 것은 다소 고풍스러운 것 같습니다.
더 좋은 방법이 있습니까? 몇 가지;
"numeric"과 같은 SQL Server 유형도 있지만 nvarchar도 있습니다.
파일 크기는 몇 킬로바이트만큼 작거나 기가 바이트 이상일 수 있습니다.
x가 실패한 것이 아니라 오류가있는 특정 행과 열을보고해야합니다.
나는 예외를 잡기 덩어리로 데이터를 분할 및 병렬로 검사를 수행하는 스레드를 생성/변환하려고 생각 했을까 예상되는 유형으로 셀 값을 캐스팅? 사전에
감사합니다.
데이터 저장소가 SQL Server 인 경우 SSIS를 사용해야한다고 생각합니다. SSIS 패키지를 만들고 C# http://www.codeproject.com/Articles/28096/Excecute-SSIS-package-DTSX-from-ASP-Net을 사용하여 SSIS 패키지를 실행 해보십시오. 이렇게하면 특정 데이터 형식에 대한 열의 매핑이 처리됩니다 . –
사이트 MVC3입니까? 그렇다면 모델/뷰 모델 및 데이터/유효성 검사 주석을 살펴보십시오.그런 다음 새 ObjectX를 만들고 CSV 행에서 채우고 유효성 검사를 수행하여 행 (전체 객체) 및 속성이 유효한지 확인한 후 그에 따라보고하고 적합한 경우 저장하십시오. – BlueChippy
이것은 표준 ASP.Net C# 웹 응용 프로그램입니다. 웹 애플리케이션 자체의 유효성 검증을 유지하여 데이터베이스 중단 및/또는 유지 관리 기간에 방해받지 않도록 노력하겠습니다. C# 코드 내에 더 좋은 방법이 있습니까? – flipcode