0

SQL にロードする前に、schema.ini を使用して CSV ファイルのデータ型/列を検証しています。行にデータ型の不一致がある場合でも、その行はインポートされますが、その特定の不一致セルは空白のままになります。問題がある場合、および/またはエラーレポート (つまり、どの行に問題があるか) を提供する場合に、ユーザーが CSV ファイルをインポートできないようにする方法はありますか?

4

2 に答える 2

0

FileHelpersライブラリをご覧ください:http ://www.filehelpers.com/

これは、csvを含むすべての種類のインポートを実行するための非常に強力なライブラリであり、エラー処理の部分も非常に優れています。

異なるエラーモードの使用FileHelpersライブラリは、3種類のエラー処理をサポートしています。

標準モードでは、何かが失敗したときに例外をキャッチできます。このアプローチは悪いことではありませんが、現在のレコードに関する情報が失われ、が割り当てられていないため、records配列を使用できません。

よりインテリジェントな方法は、ErrorManagerのErrorMode.SaveAndContinueを使用することです。

このようなエンジンを使用すると、records配列に適切なレコードがあり、ErrorManagerにはエラーのあるレコードがあり、どこでも実行できます。

別のオプションは、エラーを無視して、この例で示されている方法を続行することです。

1 engine.ErrorManager.ErrorMode = ErrorMode.IgnoreAndContinue; 23レコード=engine.ReadFile(...クリップボードにコピー|プレーンを表示|印刷|?engine.ErrorManager.ErrorMode = ErrorMode.IgnoreAndContinue;

records = engine.ReadFile(... records配列には、適切なレコードしかありません。

于 2012-06-01T14:35:31.607 に答える
0

最善の方法は、ファイルに不一致がないかチェックすることです。ただし、大きなファイルの場合、これは実行できません。テーブルに読み込まれたデータの不一致を確認するために、最初にそれを読み込む必要がある場合があります。これは、ファイルをチェックするよりもはるかに高速です (単純な T-SQL スクリプトを使用して、テーブル内の null をチェックできます)。不一致が見つかった場合は、ユーザーに通知し、テーブルをクリアできます。

于 2012-06-01T14:26:28.210 に答える