エラー処理に問題があります。VB プログラムを使用して、SQL Server 2008 R2 テーブルに重複キーを追加したいと考えています。私は次のコードを使用しています:
Public Shared Function AddCatPlanilla(ByVal CatPlanilla As CatPlanilla) As Boolean
Dim connection As SqlConnection = EnterpriseDB.GetConnection
Dim insertStatement As String _ = "INSERT [dbo].[CatPlanilla] " _
& "([CodEmpr], [TipoCatalogo], [CodAsoc], [Descripcion], [DescripcionCorta]) " _
& "VALUES (@CodEmpr, @TipoCatalogo, @CodAsoc, @Descripcion, @DescripcionCorta)"
Dim insertCommand As New SqlCommand(insertStatement, connection)
insertCommand.CommandType = CommandType.Text
insertCommand.Parameters.AddWithValue("@CodEmpr", CatPlanilla.m_CodEmpr)
insertCommand.Parameters.AddWithValue("@TipoCatalogo", CatPlanilla.m_TipoCatalogo)
insertCommand.Parameters.AddWithValue("@CodAsoc", CatPlanilla.m_CodAsoc)
insertCommand.Parameters.AddWithValue("@Descripcion", CatPlanilla.m_Descripcion)
insertCommand.Parameters.AddWithValue("@DescripcionCorta", CatPlanilla.m_DescripcionCorta)
Try
connection.Open()
Dim count As Integer = insertCommand.ExecuteNonQuery()
If count > 0 Then
Return True
Else
Return False
End If
Catch ex As SqlException
Throw ex
Finally
connection.Close()
End Try
End Function
重複キーを追加したい場合、sqlexception はエラーをキャッチせず、次の情報が画面に表示されます (プログラムを停止します)。
System.Data.SqlClient.SqlException occurred
Class=14
ErrorCode=-2146232060
HResult=-2146232060
LineNumber=1
Message=Cannot insert duplicate key row in object 'dbo.CatPlanilla' with unique index
'IX_CatPlanilla'. The duplicate key value is (001, LT, Lima).
The statement has been terminated.
何が原因なのか、SQL サーバーの構成の問題なのか、Visual Studio の構成の問題なのかはわかりません。
プログラムが CATCH セクションにジャンプしないことを強調したいと思います。プログラムは、「Dim count As Integer = insertCommand.ExecuteNonQuery ()」という行で停止します。写真を送信できないのは残念です。申し訳ありません