あなたが探しているのは、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 に移動し、優先度の高い画像は 30 に移動します。 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();
}