0

.net我需要使用Web 服务导入大量数据(超过 1000 行) ,它显示"network timeout error",在 1000+ 条记录中成功生成了大约 200-300 条记录

导入整个数据的方式应该是什么?

4

2 回答 2

1

我认为问题可能与在连接超时到期之前将所有 1000 行插入数据库所需的时间太长有关。

我可以想到两种方法来解决这个问题。

要么增加连接超时,但这可能不是最好的解决方案。如果您有一个小的互联网连接问题或数据库所在的服务器运行速度比正常慢,您最终可能会插入一些记录,但不是全部。

我个人认为最好的方法是拆分查询,使其一次只返回 100 行。即,它获取前 100 条,将它们插入数据库,成功完成后,检索接下来的 100 条记录并调用 Web 服务插入那 100 行,成功后获取接下来的 100 条记录,依此类推。

希望这可以帮助。

于 2013-10-31T14:16:20.577 回答
0

要克服超时问题,您需要在HttpClient.

有两种类型的超时。

  1. 连接超时:设置超时,直到建立连接。
  2. 会话超时:以毫秒为单位设置默认套接字超时(SO_TIMEOUT),这是等待数据的超时。

您需要像下面这样设置超时。

HttpParams httpParams = new BasicHttpParams();

//50 secs connection time out
HttpConnectionParams.setConnectionTimeout(httpParams,50 * 1000); 
//50 secs session time out
HttpConnectionParams.setSoTimeout(httpParams, 50 * 1000); 

HttpClient httpClient = new DefaultHttpClient(httpParams);
于 2013-10-31T13:53:51.103 回答