我继承了一个与 Web 服务对话的 C# .NET 应用程序,并且该 Web 服务与 Oracle 数据库对话。我需要向 UI 添加一个导出功能,以生成一些数据的 Excel 电子表格。
我创建了一个 Web 服务函数来运行数据库查询,将数据加载到 DataTable 中,然后返回它,这适用于少量行。但是,在完整运行中有足够的数据,客户端应用程序会锁定几分钟,然后返回超时错误。显然,这不是检索如此大的数据集的最佳方式。
在我继续提出一些巧妙的方法来拆分电话之前,我想知道是否已经有一些东西可以处理这个问题。目前我正在考虑 startExport 函数,然后重复调用 next50Rows 函数,直到没有数据为止,但是由于 Web 服务是无状态的,这意味着我将不得不保留某种 ID 号并处理关联的权限。这意味着我不必将整个数据集加载到 Web 服务器的内存中,这是一件好事。
因此,如果有人知道通过 N ASMX Web 服务检索大量数据(表格格式)的更好方法,请告诉我!