views:

116

answers:

1
+2  Q: 

SQL Exception Data

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 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
+2  A: 

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.

Bentley Davis