2010-01-27 5 views
11

SQL Server uniqueidentifier과 함께 작동하기 위해 C#에서 사용해야하는 데이터 형식은 무엇입니까?C#의 SQL Server 고유 식별자와 동일

전환 등이 필요합니까?

+4

다음은 모든 sql 데이터 형식에 해당하는 .net 유형 목록입니다. http://msdn.microsoft.com/en-us/library/ms131092.aspx – DyingCactus

답변

14

System.Guid.

변환 할 필요가 없습니다. 데이터베이스에서 널 (NULL) 고유 식별자 열을 읽을 때

+2

다른 매개 변수 데이터 형식 매핑 문제가있는 경우이 링크를 선택하십시오. http://msdn.microsoft.com/en-us/library/ms131092.aspx –

13

을 System.Guid, 값이 GUID를이 널 아니기 때문에, GUID를 인스턴스에 할당 시도하기 전에 null의 경우 확인하십시오. 예를 들어 :

... /// using recordset rs 


// generates exception if rs["my_guid"] is null 
Guid g = (Guid)rs["my_guid"]; 

// returns Guid.Empty {0000000-.....} if db value is null 
Guid g = (Guid)(rs["my_guid"] ?? Guid.Empty); 

+0

Guid를 사용 하시겠습니까? A.K.A. Nullable 이며 null을 할당 할 수 있습니다. –

+0

항상 작동하지는 않습니다. 즉, nullable Guid를 허용하지 않는 코드로 전달할 경우 null이 아닌 Guid로 변환해야합니다. –

+0

지켜보기 : DBNull! = null –

2

당신은 SqlDataReader 개체에서 값을 얻는 경우, 당신이 그것을 사용하기 전에 DBNull이에 대해 그것을 확인해야합니다. 때로는 값을 문자열로 해석 할 수도 있으므로 코드에 사용할 GUID가 있는지 확인하려면 New Guid (rs [ "my_guid"])를 입력해야합니다.

+0

다른 답변에 대한 덧글을 작성 – jinsungy

+1

"다른 답변에 대한 의견을 남기려면 로그인"내 사용자 이름과 아이콘이 보이시겠습니까? 로그인했는데 다른 사람의 게시물에 댓글을다는 데 충분한 평판이 없습니다 ... – SilverSkin

+0

. 이제 할 수 있습니다. ftfy. – NotMe

관련 문제