2010-02-10 3 views
2

SQL 예외 클래스를 사용하는 프로그램을 작성한 후 기본 키 위반에 대한 사용자 지정 메시지 표시를 사용합니다. 또한 위반을 일으킨 기본 키 값을 원합니다. 어떻게하면 sqlexception 객체에서 예외를 생성 한 모든 기본 키를 얻을 수 있습니까?SQL 예외 데이터

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

나는 당신이 찾고있는 데이터가 sqlexception 객체에 포함되어 있다고 생각하지 않습니다. 그것은 오류 텍스트에서 키의 이름을 알아 내지 만 그 안에 아무 값도 가지고 있지 않습니다. SQL 서버는 해당 정보를 다시 VB로 전달하여 사용되지 않게합니다.

기본 키 값을 사용할 수있게하는 한 가지 방법은 해당 데이터를 이미 프로그램에있는 변수에 저장하고이 변수를 사용하여 오류 메시지를 구성하는 것입니다.

다른 방법이있을 수 있습니다. 이 섹션 전에 더 많은 코드를 제공하면 더 많은 것을 지원할 수 있습니다. 이 제안이 귀하의 필요를 충족시키지 못하면, 불이익이 무엇인지 알려주십시오.