我创建了一个win表单应用程序。我在哪里拿Excel文件并将数据上传到Database.But当我尝试上传数据时显示错误 "超时已过期。操作完成之前经过的超时时间或服务器没有响应。" 我已经更改了连接超时属性
但仍显示同样的错误。 N.B:它工作一次然后再次显示问题。我的Excel文件包含超过50万个数据
答案 0 :(得分:4)
设置连接超时不相关,请确保在Command对象中设置了CommandTimeout属性,
SqlCommand command = new SqlCommand();
command.CommandTimeout = 0; //Wait indefinitely
不建议一次上传大量数据(在您的情况下为50万)一条记录。使用SqlBulkCopy会更高效,读取Excel文件,将记录复制到文本文件并批量上传,http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx
答案 1 :(得分:1)
我找到了解决方案。我正在使用批量复制,所以我只是增加了批量复制超时值,它可以工作。
bulkCopy.BulkCopyTimeout = 9999;
bulkCopy.WriteToServer(DR);
我在写入服务器之前写了超时代码。