2013-11-22 48 views
1

我有一個特別困難的任務,我試圖找出,但似乎無法包裹我的頭。我一直負責製作將數據從CSV文件傳輸到數據庫(mysql)的程序。我已經研究並發現並理解了這樣做的方法,但是,每個CSV文件都可能與我的數據庫表不同,例如我的表中的數據字段可能爲Land Price, Parcel no, and Locaton以保持簡單。現在要上傳的文件可能如下所示。我應該如何使用C#將csv文件傳輸到數據庫?

示例CSV文件:

enter image description here

文件示例2: enter image description here

正如你可以看到pronlem在於csv文件2,因爲這些字段是隻出不按順序,但字段的名稱與我的表的字段不匹配。那麼我該如何解決這個問題:將正確的數據從CSV文件映射到數據庫表中的正確字段?我只是在尋找想法和僞代碼類型的答案。我最初的想法是,我必須爲每個csv文件創建一個新表,但我不確定。

在此先感謝您的幫助!

回答

1

如果你想谷歌,你正在處理的根本問題是數據轉換。這是一個程序員的共同任務。

有兩種常規方法來做到這一點: 1 - 你可以用loaddatainfile堅持,創建一個新的表中的每個CSV,然後寫一個SQL語句,採用這些新行,並將它們放入現有的表(多數民衆贊成改變這一部分)。您將加載數據,然後使用INSERT。 。 。 SELECT類型的語句。

2 - 第二種方法是編寫一個自定義的C#程序。有許多C#和CSV庫可用於獲取包含源CSV所有部分的數組。從那裏,您將製作使用與每個表字段對應的數組的CSV部分的SQL語句。

+1

我將嘗試第二種方式,正是我所期待的。如果問題有點混淆,我很抱歉。 – Andy

+0

沒問題。獲得CSV數組後,只需按照表的順序編寫SQL語句(並在修改數據後(如果需要)),然後對MySQL數據庫執行該SQL語句即可。祝你好運! –

+1

是的,我感覺很多查詢字符串在我的未來!我很快可能會回到這裏哈哈 – Andy

相關問題