msaccess中插入查询的持续时间

时间:2015-12-16 07:42:26

标签: database vb.net ms-access

我想知道如何获得

所需的时间
  

INSERT

在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

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

第二个列表框的代码:

  

选择项目FROM表

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

我连接速度很慢,所以我的第二个列表框不会马上填满。

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

2 个答案:

答案 0 :(得分:1)

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

此外,如果您必须重新查询,是否正在关闭并重新打开您的连接?如果不是这样的话,只需将它保持打开状态,直到完成db。

答案 1 :(得分:1)

这是一个缓存问题。

这个问题的答案和相关文章解释了它:

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