2011-08-08 2 views
3

나는 ASP.NET (C#)을 사용하여 oracle 저장 프로 시저에 전달할 다른 텍스트 상자로 응용 프로그램을 개발 중입니다. 각 텍스트 상자에는 클래스 파일에 속성이 있습니다. 빈 텍스트 상자를 전달하면 오류가 발생합니다. oracle의 varchar2 필드가 "null"을 허용하지 않기 때문입니다.빈 텍스트 상자 데이터를 .NET을 사용하여 oracle의 저장 프로 시저에 매개 변수로 전달하는 방법

 Private string _fristName; 

     public string FirstName 
     { 
      get { return _fristName; } 
      set { _fristName= value; } 
     } 

_fristName을 string.empty 또는 ""로 지정하는 것이 가장 좋습니다.

+0

''''보다는'string.Empty'를 사용하는 것이 더 좋습니다. .Net 2.0 이후에는 완전히 동일합니다. 그러나 가독성에 관한 한, 대부분의 프로그래머는'string.Empty'가 더 읽기 쉽다고 동의 할 것입니다. –

답변

5

클래스의 초기화에서 개인 변수를 기본값 String.Empty으로 설정하면됩니다.

Private string _fristName = String.Empty; 

이렇게하면 null이 아닌 빈 문자열이 반환됩니다. 설정하면 값이 변경됩니다.

또한이 작업을 수행 할 수 있습니다 :이 도움이

Private string _fristName; 

    public string FirstName 
    { 
     get { return _fristName ?? String.Empty; } 
     set { _fristName= value; } 
    } 

희망을!

EDIT : 의견에서 @Marc의 제안을 받아 보았습니다. 비교 연산자를 ?? 연산자로 변경했습니다. 감사합니다 @ 마르크!

+0

또는 더 간결하게'get {return _firstName ?? ""; }' – Marc

+0

우, 예 - 항상 잊지 마세요. 감사! –

0

저장 프로 시저에서 매개 변수 값을 설정하기 전에 null을 확인하십시오. 이것은 공통 기능에 넣을 수 있습니다. 이것은 SQL 서버용이지만 Oracle에서도 비슷한 기능을 수행 할 수 있습니다. 또한 열에 null을 사용할 수없는 경우 DBNull.Value 대신 기본값 (문자열 등의 경우 String.Empty)이 사용됩니다.

IDbDataParameter parameter = new SqlParameter(ParameterName, DatabaseFieldType); 

parameter.Value = (value== null ? DBNull.Value : value); 
관련 문제