Winform应用程序在将数据上载到数据库时显示超时过期错误

时间:2014-05-12 08:51:44

标签: c# winforms

我创建了一个win表单应用程序。我在哪里拿Excel文件并将数据上传到Database.But当我尝试上传数据时显示错误 "超时已过期。操作完成之前经过的超时时间或服务器没有响应。" 我已经更改了连接超时属性

但仍显示同样的错误。 N.B:它工作一次然后再次显示问题。我的Excel文件包含超过50万个数据

2 个答案:

答案 0 :(得分:4)

设置连接超时不相关,请确保在Command对象中设置了CommandTimeout属性,

SqlCommand command = new SqlCommand();
command.CommandTimeout = 0; //Wait indefinitely

有关详细信息,请http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout%28v=vs.110%29.aspx

不建议一次上传大量数据(在您的情况下为50万)一条记录。使用SqlBulkCopy会更高效,读取Excel文件,将记录复制到文本文件并批量上传,http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx

答案 1 :(得分:1)

我找到了解决方案。我正在使用批量复制,所以我只是增加了批量复制超时值,它可以工作。

  

bulkCopy.BulkCopyTimeout = 9999;

     

bulkCopy.WriteToServer(DR);

我在写入服务器之前写了超时代码。