1

データベースにレコードを追加して削除できる C# の Form Windows プログラムがあります。

データベースには ID (自動番号) がありますが、レコードを削除し、代わりに別のレコードを追加したい場合、自動番号が増加し、不足している番号が追加されません。

つまり、Access データベースに 9 つのレコードがあり、レコードを削除したい場合、レコードは 8 になりますが、新しいレコードを追加すると、9 ではなく 10 になります。この図のように:

ここに画像の説明を入力

そのための解決策はありますか?

4

3 に答える 3

1

MS アクセスでは、これに対する解決策はありません。ただし、SQL サーバーの場合は、Identity 列を使用するのではなく、独自の関数を作成できます。

于 2013-10-06T20:11:10.693 に答える
1

レコードを削除し、代わりに別のレコードを追加したい場合、自動番号が増加し、不足している番号が追加されません。

[...]

そのための解決策はありますか?

短い答えは「いいえ」です。一度使用されると、削除されたレコードにテーブル内で最大のオートナンバー値があったとしても、通常、オートナンバー値は再利用されることはありません。これは、(少なくとも部分的には) Jet/Ace データベース エンジンがマルチユーザー環境でオートナンバー値を管理できる必要があるためです。

(上記の規則の 1 つの例外は、Access データベースが圧縮された場合、連続オートナンバー型フィールドを持つテーブルで次に使用可能なオートナンバー型の値が Max(current_value)+1 にリセットされることです。)

AutoNumber フィールドの仕組みの詳細については、こちらの他の回答を参照してください。

于 2013-10-06T17:26:40.640 に答える