我很感激我的应用程序中的一些错误可以让我感到困惑!!
我检查表中包含我正在查找的人的PersonID的行数:
cmd.commandtext = "SELECT Count (*) from PeopleDetails where PersonID = '11111'"
count = cmd.executescalar()
98%的时间都有效。 有时,count变量包含来自要查询的行的第一列的数据,这是名为rowid的表中的GUID。它没有满足条件的行数的预期整数。连接是实时的,如果重复查询,则返回正确的计数值。
当服务器在早上第一件事情上,当数据库存在多个同时查询时,这种情况最常见。
非常欢迎!
SQL server 2003,vb.net
感谢您的期待!
答案 0 :(得分:1)
您是否为每个命令创建了新的SqlConnection
?这看起来像是您从多个线程重用相同的SqlConnection
。
SqlConnection
/ SqlCommand
不是线程安全的,因此您确实希望避免在不同的线程中同时使用它。
一般情况下,不要害怕为您发送的每个命令创建新的SqlConnection
(或者至少对于给定的方法范围);启用连接池后,它几乎可以自由地执行此操作,并且可以为您节省很多并发问题。