2010-12-15 6 views
7

t-sql의 smallint를 C#의 정수로 변환하는 데 문제가 있습니다.작은 정수를 t-sql에서 정수로 변환하는 방법 #?

누군가가이 문제를 해결할 수 있도록 도와 줄 수 있습니까?

업데이트 # 1 무엇 난 정말 일을하려고하는 내 응용 프로그램에 DataReader를에서 SQLSERVER 2005 년 SMALLINT로 표시 열에서 데이터를 검색입니다

. 죄송 합니다만 이전에는 충분히 명확하지 않았습니다.

+1

당신이 어떤 문제가 있습니까? 예를 들어 줄 수 있습니까? –

+0

SQL Server에서 데이터를 가져 오는 데는 여러 가지 다른 방법이 있다는 것을 감안할 때 우리에게는 거의 할 수 없습니다. – spender

답변

9

smallint의 숫자 범위가 정수 값 범위의 하위 집합이므로 어떤 문제가 있는지 잘 모릅니다.

C#에서 표준 변환 작업을해야합니다 :

int intFromSmallInt = Convert.ToInt16(smallint); 

오류는 ORM에서 오는?

+0

SqlDataReader 개체에서 검색하려고했습니다. 이것이 내가 마침내 한 일입니다. dr.GetInt16 (dr.GetOrdinal ("ColumnName")). 어쨌든 고마워. – Tebo

8

는 System.Int16 (SQL Server의 일명, "SMALLINT") 인 C#을 데이터 형식 "짧은"가있다.

나는 그것이 더 시원해 보이고 다른 이유로 생각하지 않기 때문에 "짧은"것을 선호합니다. 또한

, 나는 (이 널 (NULL) 인 경우) 데이터를 끌어 다음 사용하십시오 :

short? sVal = dr["ColName"] is System.DBNull ? null : (short?)(dr["ColName"]); 
+0

_ "나는 더 짧아 보이기 때문에"short "를 사용하는 것을 선호합니다."올바른 이유는 'smallint'를 선택할 때 올바른 유형이기 때문입니다. 'int'를 사용하면 너무 큰 숫자를 데이터베이스에 삽입 할 수 있습니다. –

+1

"System.Int16"구조보다 "short"데이터 형식을 선호합니다. Int16은 별칭이 짧은 구조입니다. 둘 중 하나를 사용하면 문제가 없습니다. 나는 int보다 short를 선호한다는 것을 의미하지는 않았다 - 분명히 틀렸을 것이다. – MikeTeeVee

-4
int? value = (int?)(row["ColumnName"] as short?); 
+0

그냥 빼기? 이유를 설명 할 수 있습니까? – isxaker

+0

대답이 잘못 되었기 때문에 –

관련 문제