2013-08-23 44 views
1

我有一个Excel文件,我需要解析,验证,然后使用Interop加载到SQL Server数据库中。通过阅读工作表,阅读每行(行和列)并将该行作为Insert语句添加到List,我的应用程序可以正常工作,一切都很好。当我到达工作表的末尾时,我将所有Insert语句作为一个批处理执行。C#将文件读入数据库

我遇到的问题是当工作表很大(1000+行)时,它使用了大量的RAM。对于更大的数据是否有更好或更有效的策略?我应该提交更多清单吗?

+0

不知道你是否在内存上节省了很多,但是“更好或更有效的大数据策略”可能会使用[SqlBulkCopy](http://msdn.microsoft.com/library/system.data .sqlclient.sqlbulkcopy.aspx)。其他建议 – Corak

+1

如果我们能看到你的代码会更好。可能还有其他一些线路来提高效率。 –

回答

2

我不认为你可以在解析方面做很多事情(除非你自己编码),但只要有一行可用,我就会输入INSERT数据。无需将其存储在列表中。在你的解决方案中,基本上是将所有数据存储两次(一次存储在“Excel存储器”中,一次存储在“数据库插入存储器”中)。

+0

好的。干杯 – Adrian