3

WinFormsが汚れてきたところですが、素敵なチュートリアルを通じて、データベーステーブルをメインフォームのデザインビューにドラッグする魔法を発見しました。つまり、すべてが素敵です。すべての列が美しく表現されたDataGridViewがあります。

しかし...

この真新しい空の.sdf(作成した2つのテーブルは空ですが、それ自体は空です)に対してアプリケーションを実行すると、主キー/ID列に対応する列に-1が表示されます。その最初のレコードを作成します。

なぜこれが起こっているのか考えていますか?それが役立つ場合、列はintです。

4

2 に答える 2

5

@Brian -1は、「実際の」行がゼロ未満のIDを持つ可能性が低いため、デフォルト値として適切な選択です。デフォルトが0または1の場合、既存の行と衝突して主キー違反が発生する可能性があります。

保存する前にオフラインのままで複数の行を作成するアプリケーションの場合、一般的な方法は、新しい行のIDごとに逆方向(-2、-3、-4)にカウントし続けることです。次に、それらが保存されると、サーバーはそれらをテーブルの真の「次の」値に置き換えることができます。

于 2008-09-01T22:38:45.173 に答える
3

これはID列であり、データベースにまだ保存していないため、-1です。ここでは、テーブルをデータベースに保存する前であると想定していますよね?その値が正しく設定される前に、挿入を実行する必要があります。

于 2008-09-01T22:14:53.187 に答える