0

私はmysqlデータベーステーブルを持っています。tablename は Question で、その table の下に列名 questionNo があります。私は作成ボタンといくつかのテキストボックスで構成されるWebフォームを持っているので、作成ボタンをクリックするたびに、質問番号1、2などをデータベースに作成します...しかし、ページを更新して再度作成すると、それはまだ 1 から始まります。tablename Question の下の questionNo 列からデータベースから確認するにはどうすればよいですか? 既に質問 1、2、または 3 があることなど.. したがって、作成ボタンをクリックした後に作成する次の質問は questionNo 列の +1 になります。私の悪い英語でごめんなさい。私はエンティティフレームワークが初めてですが、エンティティを使用してこれを行うにはどうすればよいですか?

たとえば、questionNo 1 の 3 行のレコードがあるとします。もう一度作成すると、questionNo 2 のレコードが 2 行ある可能性があります。問題は、ページを更新した後、questionNo 1 の複数行のレコードを再度挿入することです。

4

1 に答える 1

1

以下のように、質問テーブルの自動インクリメント主キーを作成できます

CREATE TABLE Question 
(
QuestionNo int NOT NULL AUTO_INCREMENT,
  // other fields 
PRIMARY KEY (QuestionNo)
)

MySql は、新しいレコードを挿入するときにインクリメントを行います。コードで処理する必要はありません。


エンティティ フレームワークの使用

QuestionNoの現在の最大値を取得したい場合

int maxQNo= context.Question.Max(q => q.QuestionNo);

newQNo以下のように既に追加されていることを確認します

bool alreadyAdded= context.Question.Any(q => q.QuestionNo == newQNo);
于 2013-05-30T02:58:27.567 に答える