私はFileHelpersライブラリを使用してタブ区切りファイルをインポートしています。私はErrorMode.SaveAndContinueを有効にしました。私が直面してる問題は、無効なデータ型FileHelpersとデータ型例外
[FieldConverter(ConverterKind.Decimal)]
public decimal? Price;
単一のレコードに(例えば、小数点?価格フィールドがXXXXXXで文字列値を持っている)しているときに、特定のフィールド、ライブラリーは、最初のフィールド値に対してチェックしていることで、 ErrorManager.Errorsに記録された内部例外がスローされます。
同じ行の残りのフィールドもチェックして、エラーを同じサイクルで記録する必要があります。
どうすればいいですか?
**私はCustomConverterを作成しようとしましたが、もう一度ConvertExceptionをスローしてErrorManagerによってキャッチされ、次の行に移動する必要があることに注意してください。
AfterReadRecordは行動が、ライブラリの最初のバージョンからのデザインであることを理由に例外
コメントありがとうMarcosMeli。実際に私は> 100のようなこれらのプロパティの多くを持っているモデルクラスをたくさん持っています。私はすべてのモデルクラスでコーディングする必要がないように再利用可能なアプローチを使いたいと思います。方法がありますが、私は手動でエラーにログインし、続行することができます例外がある場合、私のコンバータでEngine.ErroorManagerのハンドルを得ることができますか? 私の他の質問は私が直接DSに読んでいるということです。これらの余分なプロパティをクラス内の各フィールドに生成すると、それらもDTに取り込まれますか?それらをDTから除外することはできますか? – Abdullah
フィールドを文字列に変換し、[FieldIgnored]属性を持つdecimal型の別の新しいフィールドを作成しました。妥当性検査はうまくいきましたが、現在はdbTableへのDataTableマッピングが残っています。 ファイルからの読み取り中に新しいフィールドが無視されるが、データベースにコピーするときにDataTableに追加されることを確認するにはどうすればよいですか? ありがとう – Abdullah
私は古いアプローチを使用して終了しました。すなわち、engine.ReadFile(xxx)メソッドを使用してファイルを読み込み、レコードのコレクションを取得し、プライベートフィールドを使用して各レコードを挿入して手動でデータテーブルを作成します。 私は何か間違っていない限り、正しい方法だと思っています。 – Abdullah