FileHelpers 라이브러리를 사용하여 CSV 파일 처리 오류를 식별하고 있습니다.Filehelper는 예외 메시지를 기반으로 오류를 구분하고 레코드 문자열을 조작합니다.
var engine = new DelimitedFileEngine<ModelClass>;
engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;
List<object> fileEngineResult = engine.ReadFile(fullFileName).ToList();
errorInfo = engine.ErrorManager.Errors;
내 ModelClass가 확인 내 CSV 파일의 각 컬럼에 해당하는 속성 나를 위해 지금
[DelimitedRecord(",")]
[IgnoreEmptyLines]
public class ModelClass
{
[FieldNotEmpty]
private string column1;
[FieldConverter(ConverterKind.Date, "MM/dd/yyyy")]
private DateTime datecolumn;
[FieldNotEmpty]
private string column3;
}
- 속성 분야에서 어떤 오류가 비어 있지 내가 처리해야합니다 때문에 중요하다 따로 따로.
- 중요하지 않은 오류 (이 경우 datecolumn)의 경우 잘못된 값을 null로 바꿔야합니다.
내 첫번째 요구 사항 아래의 코드 (여전히 원유 방법입니다)
List<object> criticalErrorList = new List<object>();
List<object> softErrorList = new List<object>();
foreach (var error in errorInfo)
{
if (error.ExceptionInfo.InnerException.ToString().Contains("The value is empty and must be populated"))
{
criticalErrorList.Add(error);
}
else
{ error.RecordString = //replace recordstring for the error column with null;
softErrorList.Add(error);
}
}
}
2 요구 사항을 달성하기 위해 어떤 생각을 사용하여 달성 할 수 있을까?
흠, 옵션은 훌륭합니다. 그러나 나는 또한 그것을 기록하기 위해 오류를 포착하고 레코드가 null 값이되기를 원합니다. 게다가 이러한 부드러운 오류가 int에 올 수 있습니다. int는 기대하지만 문자열은 전달됩니다. 이견있는 사람 ? 나는 당신이 주어진 해결책을 시도 할 것이다. – KeenUser