2012-11-27 2 views
0

감정 테이블에 다른 테이블을 참조하는 "AppraisalTrace"라는 필드가 있습니다. 이 필드는 AppraisalTrace없이 감정을 만들 수 있기 때문에 null 일 수있는 int입니다. xsd를 사용하여 데이터베이스와 코드에 참여했습니다. 내 코드에서 이제 nullable int를 null로 설정하기

나는 내가 뭘 평가서를 만드는거야 다음

oAppraisalRow.SetAppraisalTraceNull(); 

이 자동 생성 방법은 DataRow를에 의해 제공됩니다하지만 난 삽입 할 때 다음과 같은 예외를 던지고 감정 평가가있는 평가 감찰 :

Value for column "AppraisalTrace" in table "Appraisal" is DBNull 

그래서 감정을 어떻게 작성해야합니까? 미리 감사드립니다.

+1

'SetAppraisalTraceNull'이란 무엇입니까? 그 안에있는 코드는 무엇입니까? – Oded

+1

@Oded : 이것은 nullable 필드를 null로 설정하는 강력하게 형식화 된'DataRow'의 자동 생성 된 메서드입니다. –

답변

0

nullable 필드에서 값을 검색하려고 할 때이 예외가 발생한다고 가정합니다. 강하게 입력 된 DataRow에는 자동 생성 된 bool 속성이있어서 필드가 DBNull인지 여부를 나타냅니다. 분야는 bool 속성이 null의 경우

if(oAppraisalRow.IsAppraisalTraceNull) 
{ 
    // this causes your exception, so don't access a nullable field directly 
    var trace = oAppraisalRow.AppraisalTrace; 
} 
else 
{ 
    // here you can safely get the value 
    var trace = oAppraisalRow.AppraisalTrace; 
} 

그래서 먼저 확인 : 당신은 사용해야합니다.

+0

아니요, 데이터베이스에 null AppraisalTrace가 포함 된 감정을 삽입하려고 할 때이 예외가 발생합니다. –

+0

데이터베이스에서 nullable입니까, 아니면 나중에 'TableAdapter'를 새로 고치지 않고 nullable이 아닌 것으로 변경 했습니까? –

+0

TableAdapter에 AllowDBNull이 true로 설정되어 있으면 데이터베이스에서 null을 허용합니다. 문제는 NullValue가 "Throw exception"으로 설정되고 int를 null로 설정할 수 없기 때문에 null로 설정하거나 비울 수 없다는 것입니다. 그럼 어떻게해야 하죠? –

관련 문제