所以我使用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