I have written a program which uses a SQL exception class and then use it show custom messages for the primary key violation. Also i want the primary key value that caused the violation. How can i get all the primary keys which generated the exception from the sqlexception object.
Catch se As SqlException
For i As Integer = 0 To se.Errors.Count - 1
Select Case se.Errors(i).Number.ToString
Case "2627" ''Primary Key开发者_JAVA百科 Violation
Dim drH As DataRow = _ErrorDataSet.NewRow
drH.Item("Module") = _mod
drH.Item("Code") = ""
drH.Item("Description") = ""
drH.Item("Error") = "Document Number Already Exists"
_ErrorDataSet.Rows.Add(drH)
Next
End Try
I don't believe the sqlexception object contains the data you are looking for. It does conatin the name of the key in the error text but it does not have the values anywhere inside it. SQL server does not pass that information back to VB to be used.
One way to have the primary key values available is to store that data in variables earlier in the program (which you probably already have) and use those variables in constructing the error message.
There are probably other ways. If you provide more code before this section we might be able to assist more. If this suggestion do not meet your needs, let me know what the disadvantages are and we can go further.
精彩评论