C #에서 bigint에 해당하는 것은 무엇입니까?


209

C #에서 값을 처리 할 때 SQL Server 데이터베이스에 가장 큰 값을 처리 할 때 사용해야하는 것은 무엇입니까?

답변:


354

이는 64 비트 정수인 long (또는 Int64 )에 해당합니다.

데이터베이스의 숫자가 충분히 작고 실수로 Int32 등을 사용하더라도 괜찮을 것입니다. 그러나 Int64 는 확실히 그것을 잡을 것입니다.

더 작은 것을 사용하고 전체 크기가 필요한 경우 발생하는 오류는 무엇입니까? 스택 오버플로! 예이!


100
물론 정수 오버플로가 아닙니까?
luqui

6
더 많은 데이터 형식에 대한 유용한
MacGyver

3
C #에서는 long대문자로 표시되지 않습니다.
Shawn Kovac

datetime을 long으로 변환합니까?
Kiquenet

60

Int64에 직접 매핑합니다 BigInt.

출처


3
는 Int64 /의 다른 이름입니다
Asad

11
예. long키워드의 별칭입니다 System.Int64.
아논.

12

방금 삽입의 기본 키를 반환하고

SELECT @@identity

내 bigint 기본 키에서 long을 사용하여 캐스트 오류가 발생 하므로이 검색을 시작했습니다. 적어도 제 경우에는 정답은 해당 선택에 의해 반환되는 유형은 NUMERIC이며 이는 10 진수 유형과 같습니다. long을 사용하면 캐스트 예외가 발생합니다.

이것이 하나 이상의 Google 검색에서 또는 스택 오버플로에서 답변을 확인하는 한 가지 이유입니다.

나를 도와 준 데이터베이스 관리자를 인용하려면 :

... BigInt는 모양이 어떻든 INT64와 동일하지 않습니다. 그 이유 중 하나는 SQL이 일반 처리의 일부로 Int / BigInt를 Numeric로 자주 변환하기 때문입니다. 따라서 OLE 또는 .NET으로 갈 때 필요한 변환은 NUMERIC에서 INT입니다.

인쇄 된 값이 동일 해 보이기 때문에 자주 눈치 채지 못합니다. "


숫자 팁 주셔서 감사합니다. 큰 시간 내 도움이되었습니다!
jpshook

8
BigInt PK가 C # Int64에 맞지 않기 때문에가 아니라 SCOPE_IDENTITY 및 @@ IDENTITY가 NUMERIC (38, 0)을 반환하기 때문에 전송 오류가 발생했습니다. 즉, BigInt Int64와 동일하지만 SCOPE_IDENTITY 또는 @@ IDENTITY를 통해 반환 된 BigInt 값은 NUMERIC (38, 0)으로 상향 변환 될 수 있습니다.
Dan Hermann

고마워 댄 참고로 SQL Azure (RTM)-12.0.2000.8 및 .NET v 4.5
Gunnar


6

당신은 long유형 을 사용할 수 있습니다 또는Int64



1

INT SQL에서이 직접 매핑 INT32 또한 원시적 형태 즉,로 알고 INTC # 반면,

BIGINT 는 SQL Server의 정보는 다음의 제품에 직접 매핑 INT64 즉 또한 원시 형으로 알고 에서 C #을

정수의 BigInteger가 정의되어있는 경우 명시 적 변환 여기



0

bigint를 사용하는 경우데이터베이스 테이블에서 를 C #에서 Long 을 사용할 수 있습니다


-3

DataGridView에 표시되는 bigint 데이터 유형을 처리하고 다음과 같이 만들었습니다.

something = (int)(Int64)data_reader[0];
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.