我相信您正在寻找的是使用 SQL 的简单更新查询
Update table set Priority = Priority + 1 where Priority >= @InputtedPriority
然后你需要从数据库中删除任何超过 10
DELETE FROM table where Priority > 10
编辑
由于阅读了更多评论,看起来您需要运行第一行 SQL 来更新您的表以移动优先级。一个简单的 SqlCommand 和 SQL 服务器上的存储过程将立即解决您的问题。快速查看执行 SqlCommands 和过程的 SO 应该不会太难找到您要查找的内容。
编辑2
一个简单的代码示例,如果您从下拉列表中选择优先级编号 30 并将其设置为priority
,则应上传的图像将为 30,存在于 30 的图像将移至 31,依此类推,优先级为50 将变为 51。此代码假定 ID 是一IDENTIY
列。
string imageName;
string description;
string path;
int priority;
//(snip) populate the variables
const string query = "Update imagesTable set Priority = Priority + 1 where Priority >= @Priority;" +
"insert into imagesTable (ImageName, Description, Path, Priority) values (@ImageName, @Description, @Path, @Priority)";
using (var connection = new SqlConnection(connectionString))
using (var command = new SqlCommand(query, connection))
{
connection.Open();
command.Parameters.AddWithValue("@ImageName", imageName);
command.Parameters.AddWithValue("@Description", description);
command.Parameters.AddWithValue("@Path", path);
command.Parameters.AddWithValue("@Priority", priority);
command.ExecuteNonQuery();
}