【问题标题】:Access Database Automatically sorting records! How to stop?访问数据库自动排序记录!如何停止?
【发布时间】:2013-09-01 21:27:11
【问题描述】:
我正在构建一个使用数据库的程序。
当我将数据输入数据库时,它不会保持输入状态。它会按包含 ID 号的字段自动按升序排序。问题是当我以编程方式创建新记录时,它会在另一个表中创建具有相同行号的记录。
我需要停止访问自动对记录进行排序。有什么想法吗?
【问题讨论】:
标签:
database
vb.net
sorting
ms-access
【解决方案1】:
关系数据库本身没有记录顺序的概念;相反,检索到的记录按用于检索它们的查询进行排序 - 无论是在您的代码中,还是在 Access gui 的幕后。因此,如果您希望它们以特定顺序出现,请编写一个包含 ORDER BY 子句的查询。
【解决方案2】:
与所有关系数据库一样,MS Access 中的行没有固定的顺序。
如果您从表中选择数据而未在查询中指定 ORDER BY 子句,则数据库将按随机顺序返回行。
通常顺序看起来很合理(就像在您的情况下,按ID 列升序排列),如果您多次运行相同的查询,顺序可能实际上是相同的。
但不能保证 - 您不能依赖此顺序,您必须自己指定一个,按 ID 列或任何其他列排序。
我认为您的问题(除了显然不知道在关系数据库中排序是如何工作的)是这样的:
问题是当我以编程方式创建新记录时,它会在另一个表中创建具有相同行号的记录。
如果我的理解正确:
当您需要另一个表中的记录具有相同的值时,只需在插入第一个表后从ID列中取值(假设ID是主键)并使用该值保存数据进入第二个表。
【解决方案3】:
从表中删除任何索引是一种简单的方法。但是你没有索引。
我将在您的表中创建一个名为“PretendRowNumber”的新字段,并将行号插入其中。然后你至少可以把你的两张桌子绑在一起。