1. 程式人生 > >批量CSV檔案匯入資料庫

批量CSV檔案匯入資料庫

最近在研究fusionpbx,,發現它預設是sqlite,支援mysql,支援odbc。

無奈,我只會MS一族。。。查了很多如何從csv匯入sqlserver,,,

幾種方案:

1. bulkinsert

2. dts import

3. 自己寫一個

上面的方案 ,優缺點都有。

1. 需要自己手動建表,無法自適應csv的動態表結構,,優點是速度快。

2. 只能一個個csv檔案匯入,優點是動態適應強。

3. 缺點是,要自己寫程式碼,同時各種複雜的資料結構,比如資料裡面包含 comma,之類的分隔符,包含換行分隔符,

    優點是可以自己控制。

我比較喜歡自己控制問題,故選擇第三種。

用C#寫了個console程式,支援標準csv檔案匯入,

第一行作為表結構頭,自動生成表格。

支援用雙引號分隔資料列,

問題也有,

1. 程式碼只支援SQLSERVER,這個簡單,只要換一個driver就好了。

2. 資料列中包含換行符的話,就無法處理,

我自己大概100多個檔案,其中6個無法處理,我用dtsimport手動處理掉。

下載連結如下: