私が持っている問題は特にCSVHelperライブラリです。CSVHelper FormatException with DateTime
私のcsvファイルは、このようなものになります。私はCSVHelperでやっている何を
Number,Date,Account,Amount,Subcategory,Memo
,09/05/2017,XXX XXXXXX,-29.00,FT , [Sample string]
,09/05/2017,XXX XXXXXX,-20.00,FT ,[Sample string]
,08/05/2017,XXX XXXXXX,-6.30,PAYMENT,[Sample string]
はこれです:
List<Transaction> result = new List<Transaction>();
using (TextReader fileReader = File.OpenText("data.csv"))
{
var csv = new CsvReader(fileReader);
result = csv.GetRecords<Transaction>().ToList();
}
問題は、それが最後の行にのGetRecordを実行しようとしたときということです、この例外が発生します:
Unhandled Exception: System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.DateTime.Parse(String s, IFormatProvider provider, DateTimeStyles styles)
at CsvHelper.TypeConversion.DateTimeConverter.ConvertFromString(TypeConverterOptions options, String text)
at lambda_method(Closure)
at CsvHelper.CsvReader.CreateRecord[T]()
at CsvHelper.CsvReader.<GetRecords>d__65`1.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
データからわかるように、最初の列空であるか、文字列nullを持っています。それでも例外メッセージは、2番目の列であるDateの問題を指しています。
ご協力いただければ幸いです。
どのようにあなたのトランザクションクラスがどのように見えるのでしょうか?デフォルトでは、CsvReaderはCSVファイルで使用していない日付形式を使用することもできます。 – elgonzo