【发布时间】:2017-05-19 04:43:56
【问题描述】:
我有一个包含 5000 条记录的数据库。我有前 1000 个顺利使用。然而,接下来的 90 条记录,JET 司机似乎无缘无故地跳过了这些。
我不确定这是什么原因。我不认为问题出在我的 SQL 命令上。但是,如果有的话,我会在这里发布。注意:我知道为 sql 命令添加字符串不是一个好主意,但我只能通过这种方式使其工作。
string queryTest = "Select Serial_Number FROM serialNumbers WHERE Is_Used=false AND (In_Progress=false OR Accessed_Time_Stamp < #" + testTime.ToString() + "#);";
如果有任何方法可以将testTime.ToString() 替换为@time,然后致电setCommand.Parameters.AddWithValue("@time", testTime.ToString());,请告诉我。到目前为止,这一直在抛出异常。
回到主要问题。因此,JET 跳过的这个组有 90 条记录。我不确定为什么,我想知道这里是否有人知道可能导致这种情况的原因。
我还应该提到,我最近将此表与另一个表合并,以创建 5000 条记录。是的,这个问题发生在合并发生的前 90 个号码上。另外,ID 从 1000 跳到 1002。不确定这是否会产生任何影响,但我想提一下。
另外,我正在用 C# 编写代码。
【问题讨论】:
-
您确定它们被完全跳过,还是它们只是乱序?您在查询中没有指定顺序,如果您只是以某种方式合并它们,它们很容易出现故障。
-
在数据库中,它们的顺序是正确的。这是我创建的一个 MS Access 数据库,我可以在 MS Access 中查看该数据库。我在前一组 100 上使用此查询命令进行测试,它能够毫无问题地获取序列号。虽然,这可能是因为 100 的顺序是从 1 到 100。但是我查看了当前数据库的 ID,它也是按 ID 排序的