データベース テーブルのいくつかの値の交換について質問があります。
私が構築しようとしているのは、(ASP.net で) 調査を表示する Web サイトです。SURVEY_QUESTIONS
質問は、 (SQL Server 内の)という名前のテーブルに格納されます。
テーブルには次の列があります。
- 調査質問 ID (整数)
- 質問 (文字列)
- タイプ (文字列)
- アクティブ (ブール値)
- 順序 (整数)
これで、質問が質問列に保存されます。次に例を示します。
現状に満足していますか?
タイプは、複数選択またはオープン列のいずれかになります。アクティブとは、アクティブな場合にのみ質問が調査に表示されることを意味します。私が抱えている問題は、最後の列であるorder
. 質問を最低から最高の順に並べたいです。質問が 5 つある場合は、順序列 1、2、3、4、5 に従って適切に並べられます。
質問を追加して編集する C# (Winforms) アプリケーションがあります。これを datagridview で行い、データセットを使用してグリッド ビューを埋めました。たとえば、保存ボタンを押すと、datagridview の変更がデータベースに更新されます。
ここで、問題 1 の順序番号が 3 で、問題 5 の順序番号が 1 だとします。問題 1 を最初に表示したいので、順序番号は 1 にする必要があります。しかし、この場合、問題 5 にはすでにその順序番号があり、私が望むのは、「占有された」注文番号が別の質問に割り当てられるたびに、それらの注文番号が入れ替わることです。
データベースに更新するための保存ボタンの背後にある次のコードがあります。
DialogResult dr = MessageBox.Show("Are you sure want to edit a question?", "Message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
if (dr == DialogResult.Yes)
{
this.SURVEY_QUESTIONTableAdapter.Update(_PVB1314_005DataSet.SURVEY_QUESTION);
datagridviewTest.Refresh();
MessageBox.Show("Database updated");
}
誰かがこれについて私を助けてくれることを願っています。