2011-07-05 20 views
0

ちょうど開始ノート:私は私たちに渡され、バグを通過して修正しようとしている既存のアプリケーションを経由しています。DataGridView System.Data.ConstraintException on row

特定のDataGridViewでエラーが発生しました。私にIDに関する一意制約例外を与えます。奇妙なことは、テーブルに新しいアイテムを追加するときにこのエラーを受け取らないということです。行を選択しようとすると(新しい行が追加される必要はありません)、 DataGridView。このテーブルにアイテムを追加するとIDが順番に増え、IDの値が正しくインクリメントされているように見えるので、なぜこのエラーが出るのか分かりません。私はVisual Studioの新機能ですので、アイテムがテーブルに追加されたときとは逆の行を選択すると、なぜこのエラーが表示されるのか、本当に混乱します。

DGVで行を選択したときに、このエラーがどの行で発生しているのか、それが起こっているのかを教えてもらえますか?これは通常動作するので、例外ウィンドウでSystem.Data.ConstraintExceptionをマークしようとしましたが、プログラムは停止せず、通常は他の例外と同様にコード内の対応する行に移動します。ダイアログウィンドウがポップアップし、プログラムを閉じると通常どおりに処理されます。

もう1つ注意しなければならないのは、アイテムがデータベースに正しく追加されており、正しいIDとすべてであることです。例外ダイアログをポップアップさせる以外に問題は生じていないようです。私はダイアログが表示されるのを止めるためにDataErrorイベントを処理することができますが、私は本当にこれをカバーするのではなく、これを解決したいと思います。

例外のスクリーンショットはここで見ることができます:私は、新しいレコードを追加した後のDataGridView内の任意の行を選択するとき

http://i.imgur.com/VICFv.png

そして再び、ちょうど明確にするために、この例外がポップアップ表示されます。また、onRowEnterイベントが発生するように設定されていません。

大変助かりました!前もって感謝します。

答えて

0

あなたはIDが正しくインクリメントされている場合、行 を選択した後、それが既に存在しているものと倍増することができますので、場合でも、あなたのID列の「ホットスポット」のようなものを持っているかもしれませ。

+0

申し訳ありませんが、私はあなたが何を意味するのか分からないのですか? – AnthonyJK

+0

選択した後は、何とかyuorで保護された行IDを二重にすることによって呼び出す必要があります。 – Tigran

+0

明確化のおかげで、私はこれを調べます。 – AnthonyJK