簡體   English   中英

使用schema.ini作為驗證器將CSV導入SQL

[英]Import CSV to SQL using schema.ini as validator

在加載到SQL之前,我正在使用schema.ini驗證CSV文件中的數據類型/列。 如果一行中的數據類型不匹配,它仍將導入該行,但會將特定的不匹配單元格留空。 如果有任何問題和/或提供錯誤報告(即哪一行有問題),有什么方法可以阻止用戶導入CSV文件。

最好的方法是檢查文件是否不匹配。 但是對於大文件,則不可行。 您可能需要先加載它,然后檢查表中已加載的數據是否不匹配。 這比檢查文件快得多(您可以使用簡單的T-SQL腳本檢查表中的null)。 如果發現不匹配,則可以通知用戶,然后可以清除該表。

看看他的FileHelpers庫: http : //www.filehelpers.com/

這是一個非常強大的庫,可以執行各種導入,包括csv,它們也有一個非常簡潔的錯誤處理部分

使用差異錯誤模式FileHelpers庫支持3種錯誤處理。

在標准模式下,您可以在出現故障時捕獲異常。 這種方法還不錯,但是您會丟失一些有關當前記錄的信息,並且由於未分配記錄而無法使用records數組。

一種更智能的方法是使用ErrorManager的ErrorMode.SaveAndContinue:

使用這樣的引擎,您可以在records數組中擁有良好的記錄,在ErrorManager中,您可以擁有帶有錯誤的記錄,並且可以在任何地方進行操作。

另一個選擇是忽略錯誤並繼續執行本示例中的顯示方式

1 engine.ErrorManager.ErrorMode = ErrorMode.IgnoreAndContinue; 2 3條記錄= engine.ReadFile(...復制到剪貼板|視圖純色|打印|?engine.ErrorManager.ErrorMode = ErrorMode.IgnoreAndContinue;

records = engine.ReadFile(...在records數組中,您只有良好的記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM