use*_*222 2 vb.net ms-access visual-studio-2013
每次我在 Visual Studio 中的 MS Access 数据库中输入一个新条目时,即使 ID 号的顺序正确,现在也开始将一些底线条目放在数据库的顶部。
当然,如果我单击 id 选项卡,我可以按正确的顺序取回它,但我还有一个与数据库链接的图表,它正在将其丢弃。
如果我通过 MS Access 2013 查看数据库,它似乎没问题,如果我删除数据并再次写入,它仍然显示在顶部。
有人知道我能做什么吗?
默认情况下,Microsoft Access(应用程序)更愿意显示表中按该表的主键(如果存在)排序的行。但是,这可能不是表中行的自然顺序,即行在表中物理存在的顺序(通常但不总是将行插入表中的顺序)。
因此,如果您创建一个包含字段的新表
ID – 长整数,主键
TXT – 文本(50)
然后插入两行
INSERT INTO Table1 (ID, TXT) VALUES (2, 'bar')
INSERT INTO Table1 (ID, TXT) VALUES (1, 'foo')
Run Code Online (Sandbox Code Playgroud)
当您在 Microsoft Access 本身中打开表时,它可能会将行显示为
ID TXT
-- ---
1 foo
2 bar
Run Code Online (Sandbox Code Playgroud)
因为这是主键顺序。但是,如果您从另一个应用程序执行查询并且不包含 ORDER BY 子句
SELECT ID, TXT FROM Table1
Run Code Online (Sandbox Code Playgroud)
那么行将更有可能按其自然顺序返回,即
ID TXT
-- ---
2 bar
1 foo
Run Code Online (Sandbox Code Playgroud)
如果要确保按 ID 按顺序检索行,则需要在查询中包含 ORDER BY 子句:
SELECT ID, TXT FROM Table1 ORDER BY ID
Run Code Online (Sandbox Code Playgroud)