【问题标题】:Progress Bar for calls to SQL from .Net从 .Net 调用 SQL 的进度条
【发布时间】:2009-04-15 18:54:35
【问题描述】:

我想知道是否有一种经过验证的/真实的方法可以将 .Net 应用程序的数据库调用进度报告给它的用户。我想知道是否甚至可以实际指示完成百分比,或者是最好/唯一的方法来简单地显示“加载”动画以指示正在发生的事情?

另外,SQL2008 是否有人知道这个问题?

【问题讨论】:

    标签: asp.net sql progress-bar


    【解决方案1】:

    您必须确定性地加载内容。例如,如果您知道您将获取大量数据,例如,您可能会执行以下操作:

    -获取所有记录的计数 - 获得 500 个 -报告状态为 500/total % - 获得 500 多个 - 报告状态为 1000/total % -...继续,直到你得到他们所有的用户都取消了

    这对于根本不需要时间的事情来说是非常浪费的,因为访问数据库这一事实本身就是开销的很大一部分。

    【讨论】:

      【解决方案2】:

      据我所知,没有办法做到这一点。我的建议是使用永远旋转的圆形进度条之一。 Microsoft 在 SQL 和 Project 的数据库操作中使用这些。

      这是一篇关于 CodeProject 的文章,其中包含各种内容:

      http://www.codeproject.com/KB/vb/sql2005circularprogress.aspx?fid=324397&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2205952

      亚当·贝伦特

      【讨论】:

        【解决方案3】:

        您可以使用 raiserror 和 no wait 选项来将消息发送回远程调用者而不结束 sql 事务。当然,这将打破通常的 try/catch 约定,因此建议谨慎。

        另一方面,“数据库调用”也可以指恢复或备份操作,在这种情况下,您可以简单地使用 SMO(服务器管理对象)库中的进度事件。

        此外,可以使用诸如 Linq 之类的 ORM 解决方案来处理诸如批量更新操作之类的“数据库调用”。如果是这种情况,那么这个答案可能很有用: How can I get a percentage of LINQ to SQL submitchanges?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-12-20
          • 2014-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多