【问题标题】:Add Progress % to SQL Query in C#在 C# 中将进度百分比添加到 SQL 查询
【发布时间】:2018-02-07 01:01:31
【问题描述】:

我有一个 SQL 查询,它将从数据库表中返回一个大型数据集(超过一百万条记录),如果我使用 SQL 数据客户端执行,有没有办法在 C# 中创建进度指示器查询?我还需要对可能需要一些时间的 MERGE (INSERT, UPDATE, DELETE) 查询执行相同的操作。这可以在控制台应用程序或 Windows 窗体应用程序中实现吗?

【问题讨论】:

  • 将调用设为异步不是更好,这样您的 UI 就不会被捆绑。然后您可以提醒用户(可能是 toast 通知)作业已完成?
  • 是的,这是可能的。现在你的下一个问题是什么?
  • 您只能报告您可以衡量的事物的百分比进度。你能衡量查询的进度吗? (当然,如果需要很长时间,也许开始的地方是优化查询或运行它的代码,这样用户就不必从这个事实中分心。)

标签: c# progress


【解决方案1】:

如果您要检索“超过一百万条记录”,则您的数据检索和/或处理中的某些内容非常错误。

普通人不能处理超过 5-50 列的数据(只有 50 列只有 2-3 行)。因此,您将永远无法显示所有这些数据。如果你不能显示它,你不应该检索它。这一切都假设您的 RAM 可以处理这么多的数据。您应该查看您选择的 DBMS 是否支持结果分页。

我怀疑您是否可以使用 SQLDataClient 在该详细级别上进行进度报告。但是我不知道那个类,所以它实际上可能支持它。通常,这种级别的进度报告需要:

  • 为其设计的代码
  • 您必须自己编写的代码,一直到执行检索的最低循环(在迭代之间进行报告)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多