C# 如何在插入时阻止Ms Sql自动排序
当我向表中插入任何数据时,bus_id会自动按字母顺序排序。我希望按插入顺序查看它们,因为我的bus_id是varchar,由整数和字符串组合而成。所以把它们分类会把它们弄得乱七八糟 我用来生成总线id列的代码C# 如何在插入时阻止Ms Sql自动排序,c#,asp.net,sql-server,database,C#,Asp.net,Sql Server,Database,当我向表中插入任何数据时,bus_id会自动按字母顺序排序。我希望按插入顺序查看它们,因为我的bus_id是varchar,由整数和字符串组合而成。所以把它们分类会把它们弄得乱七八糟 我用来生成总线id列的代码 SqlCommand cmd = new SqlCommand("select count(bus_id) from bus_details", con); int i = Convert.ToInt32(cmd.ExecuteScalar()); con.Close();
SqlCommand cmd = new SqlCommand("select count(bus_id) from bus_details", con);
int i = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
i++;
lblbusid.Text = busID + i.ToString();
并将数据传递到表中
SqlCommand cmd = new SqlCommand("insert into bus_details (bus_id,bcompany_id, bus_type,capacity) values(@bus_id,@bcompany_id, @bus_type,@capacity)", con);
cmd.Parameters.AddWithValue("@bus_id", lblbusid.Text);
总之,在我给出OP想要的答案和一些奖励提示之前
- SqlCommand和SqlConnection是一次性的,所以使用块将它们放在
中
- 在它给你带来麻烦之前,我建议你
orderby
指定排序顺序。如果bus\u id
是主键,它将按此列排序。由于@PanagiotisKanavos pointedSQL不保证没有订单依据的订单,因此您可以使用order by
更改订单。您的ID将导致您的问题,即使是您当前生产的订单。@RicardoPontual只是出于偶然。如果它也是一个聚集索引,则可以按该顺序存储。但是,如果未指定orderby
,服务器可以以任何顺序返回数据。并行、连接、到tempdb的假脱机可以更改行的处理顺序以及它们发送到数据库的方式client@Ricardo绝对不是。在计划更改之前,它可能会按该顺序返回数据。看我上面贴的链接,它100%地揭穿了这个神话。正是聚集索引,而不是主键,使这种行为看起来像是以这种方式运行的。