批量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手動處理掉。

下載鏈接如下:

https://pan.baidu.com/s/1hmPcEsdecberKn9tpZ6A0A

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章