【问题标题】:Duration of insert query in msaccessms访问中插入查询的持续时间
【发布时间】:2016-02-06 07:15:17
【问题描述】:

我想知道如何获得所需的时间

插入

在 msaccess 数据库中查询。

我使用 OleDbCommand,当然还有 OleDbConnection 对象

我正在运行一个循环,例如:

 For Each item In ListBox.SelectedItems

                Try

                    cmd.CommandText = "INSERT INTO table(x) VALUES(" + item.ToString + ")"
                    cmd.ExecuteNonQuery()

                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            Next

然后我通过将这些项目最近插入数据库来填充另一个列表框。

第二个列表框的代码:

从表中选择项目

for each item returned by query: 
listbox2.addItem(item) 
end loop

我的连接速度很慢,所以我的第二个列表框没有立即填满。

通过让我的线程休眠 5s 然后运行SELECT 查询解决了我的问题,因为只有在 5s 之后我才能看到新插入的数据,但并不总是这样,我可能需要等待 4s 甚至7s.我希望Try不会减慢进程。

【问题讨论】:

  • 您如何创建与数据库的连接,尤其是在写入时?
  • @Rob 嗨,我编辑了我的问题。

标签: database vb.net ms-access


【解决方案1】:

为什么要重新查询数据库。只需使用您插入的相同值填充第二个列表框。请确保在 Try Catch 完成后执行此操作。或者返回一个标量以检查以确保插入工作,然后将您的项目添加到第二个列表框中。这样你就不需要重新查询,这是迄今为止最慢的瓶颈。

另外,如果您必须重新查询,您是否关闭并重新打开您的连接?如果不是这样,请让它保持打开状态,直到您完成所有数据库。

【讨论】:

    【解决方案2】:

    这是一个缓存问题。

    这个问题中的答案和链接文章解释它:

    Why is my Access database not up-to-date when I read it from another process?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-25
      • 2012-12-31
      • 1970-01-01
      • 2019-02-18
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多