重複するUNIQUE IDを持つ新しい行を追加すると、常に捕捉できないCONSTRAINTExceptionがスローされるという問題があります。ここに私のコードです。VBで重複した一意のIDを追加するときにCONSTRAINT例外をキャッチする方法
Private Sub BindingNavigatorAddNewItem_MouseUp()
try
DataGridView1.CurrentRow.Cells(0).Value = InputBox("give new product id")
Catch ex As Exception
MessageBox.Show("error ") <-- never comes here!!
End Try
end sub
Private Sub DataGridView1_DataError(..) Handles DataGridView1.DataError
e.ThrowException = False <-- randomly comes here!!
Dim v As DataGridView = CType(sender, DataGridView)
v.Rows(e.RowIndex).Cells(e.ColumnIndex).ErrorText = "The value is wrong"
v.BeginEdit(False)
MessageBox.Show("error 2")
end sub
okですので、重複する行を追加しないようにするには、例外を処理するのではなく、事前にクエリを実行することをお勧めします。 – Tom
製品IDについては、DBについてあまり知らないうちに、自動的に番号が付けられると思います。それは可能ですか? –
これは信頼できる方法ではありません。直前にチェックしても、他の誰かが入ってこないようにして、同じプライマリキー値を追加したことを確認することはできません。あなたはDBの実行からのエラーに対処することができなければなりません。 – RBarryYoung