所以我使用C#和Visual Studio 2013.我目前有一個導入程序,它使用System.Data.OleDb連接到MS Access數據庫和System.Data.SqlClient爲Sql Server連接。從MS Access導入到大型數據集的SQL Server的方法
我最初做的是我會從MS Access讀取數據並將數據存儲在DataTable中,並將DataTable中的數據存儲到SQL Server中。它一直很好,直到我終於碰到了一個有大約30個奇數列和近100萬行的表格,並且我得到了OutOfMemoryException。
所以現在我試圖想辦法解決。我想在我嘗試加載到DataTable之前設置行計數檢查MS Access表,如果它是一定數量的行或更高我打算試圖寫入到外部文件,然後執行導入文件。
所以我問的是誰知道我可以怎麼做呢?只有我見過的解決方案使用Interop,我聽說你不想在代碼中使用互操作,因爲它的速度很慢,而且不可靠。我試圖從MS Access進入一個.csv或.txt文件,但如果一個表沒有主鍵我不知道如何去迭代一個表,如果它不是目前在一個數據表。
你有沒有看過如何將Access連接到一個Sql Server表..這可以很容易地完成你有沒有嘗試過任何谷歌搜索..我知道這是可能的,因爲我已經這樣做了很多次..也可以這也可以基於特定的記錄數或記錄數量塊來完成。 也查找如何使用DTS或SSIS – MethodMan 2015-03-30 18:32:36
然後我會建議尋找SSIS,或者寫一些查詢,您可以從Access中插入數據進入SQL仍然是你嘗試谷歌搜索..? – MethodMan 2015-03-30 18:35:29
我不想在MS Access上保存數據。 SQL Server提供數據備份,安全性,更多的存儲等等。所以我不想做一個鏈接,它仍然在Access上,但在SQL Server上可以查看...我提到我知道如果有一個塊PK,但是如果沒有PK,我不知道如何在一個表格的某個時間段沒有像DataTable那樣。在這種情況下,MS Access表格大到要存儲在DataTable中... – user3003304 2015-03-30 18:35:34