0

我正在构建一个使用数据库的程序。

当我将数据输入数据库时​​,它不会保持输入状态。它按包含 ID 号的字段自动按升序排序。问题是当我以编程方式创建新记录时,它会在另一个表中创建具有相同行号的记录。

我需要停止访问自动对记录进行排序。有任何想法吗?

4

3 回答 3

1

与所有关系数据库一样,MS Access 中的行没有固定的顺序。

如果您从表中选择数据而未在查询中指定ORDER BY子句,则数据库将以随机顺序返回行。
通常顺序看起来很合理(就像在你的情况下,按ID列升序排序),如果你多次运行相同的查询,顺序可能真的是一样的。

但是不能保证 - 您不能依赖此顺序,您必须通过按ID列或任何其他列排序来自己指定一个。


我认为您的问题(除了显然不知道在关系数据库中排序是如何工作的)是这样的:

问题是当我以编程方式创建新记录时,它会在另一个表中创建具有相同行号的记录。

如果我的理解正确:
当您需要另一个表中的记录具有相同的值时,只需ID在插入第一个表后从列中获取值(假设这ID是主键)并使用该值保存将数据放入第二个表中。

于 2013-09-01T21:57:00.087 回答
1

关系数据库本身没有记录顺序的概念。相反,检索到的记录按用于检索它们的查询排序 - 无论是在您的代码中,还是在 Access gui 的幕后。因此,如果您希望它们以特定顺序出现,请编写一个包含 ORDER BY 子句的查询以适应。

于 2013-09-01T21:54:59.600 回答
0

Removing any indexing from the table is the easy way. But then you have no index.

I would just create a new field in your table called "PretendRowNumber" and insert the would be row number into it. Then you can at least tie your two tables back to each other.

于 2014-04-13T15:49:24.497 回答