2012-02-20 2 views
2

데이터베이스에서 aspx 페이지로 값을 가져옵니다. 한 열의 값을 얻으면서 열은 ... 등varchar 값 'null'을 데이터 유형 int로 변환 할 때 변환이 실패했습니다.

null,402,2912,2909,2910,2913,2911,2914,2915,2388,2389,2390, 
2391,2964,2965,2392,2393,2394,2395,2397 

을 값을 던지고 이제 그 데이터에 '널 (NULL)' int 타입을 VARCHAR 값을 변환 할 때

전환이 실패 예외를 발생 .

하지만 널 제외하고 컬럼의 모든 다른 값을 원하는 ...

는 '0'이 '널'을 변환 할 수있는 방법이 있습니까,하지만 여전히 다른 모든 값이 있어야합니다.

+2

시도해야합니다 - 당신은 null 값을 처리하는 다른 방법으로이 모든 접근 할 수있는 방법이 많이있다. 더 많은 정보를주세요. –

+0

코드는 어디에 있습니까? 나는 당신이''Convert.ToInt32' 대신에'int.TryParse'를 사용해야한다고 생각합니다. (당신이 사용하고있는 것 같아요) – V4Vendetta

+0

이 값을 얻는 방법을 알려주세요, 402291229092910,2913,2911, 2914,2915,2388,2389,2390, 2391,2964,2965,2392,2393,2394,2395,2397 –

답변

4

변환 된 INT 널 (NULL) 값을 허용하는 데이터 유형 Nullable<int> 대신 int의 확인 또는 SQL SELECT 문에 당신은 할 수 있습니다 : ISNULL(yourcolumn, 0)을 변환 난 그냥 int? variable; 나의 유형을 선언 할 null

3

0 null 가능한 int 유형입니다. 당신이 예외를 입지 않도록 것입니다, 당신은 당신이 당신의 결과에 null 값을 제외한 모든 값을 싶은 말 때문에

if (value == null) 
    value = 0; 
2

를 필요한 경우 당신은 쉽게 당신이 그것을 필터링 할 수 0으로 값을 변환 할 수 있습니다 당신의 where 절을 사용하는 select 문

SELECT * FROM COLUMN WHERE COLUMN_VALUE IS NOT NULL 

또는, EF Linq에를 사용하는 경우 :

from x in yourObjectContext.yourColumns where x != null 
1

난 당신이 NULL에서 데이터베이스에 0로 변경하려고 생각합니다. 그런 다음 당신은 당신이 사용하고있는 코드 중 하나를 표시하지 않은 this-

SELECT CASE WHEN columnName IS NULL THEN '0' ELSE columnName END FROM tableName 
관련 문제