我在删除记录后插入mySQL时遇到问题。新插入的记录在其他记录之前插入,删除前一条记录的位置。
所以,如果我有三个这样的记录:
SnippetNum Snippet
1 #1
2 #2
3 #3
如果删除记录#1,下一条记录将被插入
SnippetNum Snippet
4 #4
2 #2
3 #3
这弄乱了我的记录在checkedListBox中的显示方式
以下是在checkedListBox中显示项目的代码
private void RefreshCheckedListNoteSnippets() {
AnesthNoteSnippets.Refresh();
checkedListNoteSnippet.Items.Clear();
for (int i = 0; i < AnesthNoteSnippets.List.Length; i++) {
string command = "SELECT Snippet FROM anesthnotesnippet WHERE SnippetNum = " + AnesthNoteSnippets.List[i].SnippetNum + " ORDER BY SnippetNum ASC";
string snippet = DataCore.GetScalar(command);
if (snippet != String.Empty) {
checkedListNoteSnippet.Items.Add(snippet, false);
}
}
}
这是我插入代码:
public static void Insert(string snippet) {
string command = "INSERT INTO anesthnotesnippet (Snippet)" +
" VALUES ('" + snippet + "')";
DataCore.GetScalar(command);
}
任何建议赞赏
答案 0 :(得分:2)
在SQL中,行在表中没有保证的内部排序顺序,DBMS可以自由地将它们放在需要的位置。
如果您需要按照特定方式对其进行排序,那么您在提取时所执行的操作就已经在select
语句中显示了。
但是,既然你一次只做一个片段(使order by
多余),看起来它会归结为以下指定的顺序:
for (int i = 0; i < AnesthNoteSnippets.List.Length; i++)
检查AnesthNoteSnippets.List
调用以确保在刷新时对列表进行了适当的排序。