2010-01-27 64 views
11

我應該在C#中使用哪種數據類型與SQL Server配合使用uniqueidentifierC#中等效的SQL Server唯一標識符

我需要任何轉換等嗎?

+4

這列出了所有sql數據類型的等效.net類型:http://msdn.microsoft.com/en-us/library/ms131092.aspx – DyingCactus 2010-01-27 17:31:51

回答

14

System.Guid。

無需轉換。

+2

如果您有任何其他參數數據類型映射問題,請檢查此鏈接: http://msdn.microsoft.com/en-us/library/ms131092.aspx – 2010-01-27 17:33:12

13

的System.Guid

當從數據庫中讀取爲空的唯一標識符列時,一定要檢查值是試圖分配給一個GUID實例,如GUID是不可爲空之前空。例如:

... /// 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?又名可爲空,您可以分配空值。 – 2010-01-27 17:57:33

+0

這並不總是奏效 - 也就是說,如果你傳遞給不允許空的Guid的代碼,你必須在某個時刻將它轉換爲不可空的Guid。 – 2010-01-27 18:20:08

+0

觀看它:DBNull!= null – 2010-02-01 16:43:55

2

如果你正在從一個SqlDataReader的價值,一定要檢查它針對的DBNull您嘗試使用它之前。有時候這個值也可以被解釋爲一個字符串,所以你需要輸入New Guid(rs [「my_guid」])來確保你的代碼中有一個guid。

+0

登錄後可以對其他答案發表評論 – jinsungy 2010-01-27 17:45:09

+1

「登錄以評論其他答案」你會看到我的用戶名和圖標,對不對?我登錄了,但是我沒有足夠的信譽評論其他人的帖子... – SilverSkin 2010-01-27 19:04:58

+0

。現在你了。 ftfy。 – NotMe 2010-01-28 19:43:00