如何通过插入查询运行进度条?

时间:2010-03-13 06:16:04

标签: c#

我有这个插入查询:

try {
  Cmd.CommandText = @"INSERT INTO BarcodTbl SELECT * FROM [Text;DATABASE=" + PathI + @"\].[Tmp.txt];";
  Cmd.ExecuteNonQuery();
  Cmd.Dispose();
} catch (Exception ex) { 
  MessageBox.Show(ex.Message); 
}

我有两个问题:

  1. 如何从插入的开头到结尾运行进度条?

  2. 如果出现错误,我收到错误异常,操作将停止 - 查询停止,BarcodTbl为空。如何查看错误并允许查询继续填写表格?

2 个答案:

答案 0 :(得分:1)

您直接从文本文件填充表格的方式可以防止任何进度信息。在任何时候你都不知道已经插入了多少条记录以及剩下多少条记录。要获得一些真正意义上的“进展”,您可能需要将查询分解为记录块的循环。然后,您将能够在每个块之后前进进度条。它也会让你在未能从那个特定的块中重新开始。

如果您希望按原样保留此查询并仍显示进度条,则必须伪造它。添加带有时间的线程并前进进度条,直到查询结束。或者显示另一个进度指示器(即滚动球0不会让您进行准确更新。

答案 1 :(得分:1)

我同意Traveling Tech Guy 使用此INSERT时无法显示进度。从文件中读取零件并将它们插入循环中,或者只绘制一些与百分比无关的进度 - 从左到右移动的东西。
我会选择第二种解决方案。