2010-01-27 6 views

Odpowiedz

14

System.Guid.

Konwersje nie są potrzebne.

+2

Sprawdź to łącze, jeśli masz inne problemy z mapowaniem typów danych parametrów: http://msdn.microsoft.com/en-us/library/ms131092.aspx –

13

System.Guid

Czytając zerowalne kolumn uniqueidentifier z bazy danych, należy sprawdzić, czy wartość jest null przed przystąpieniem do przypisania do instancji GUID jako GUID nie jest pustych. Na przykład:

... /// 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); 

itp

+0

Po prostu użyj Guida? ZNANY JAKO. Nullable i można przypisać zerowy. –

+0

To nie zawsze działa - to znaczy, że w pewnym momencie będziesz musiał przekonwertować go na nieululującego Guida, jeśli przechodzisz do kodu, który nie pozwala na puste Guidy. –

+0

Zobacz: DBNull! = Null –

2

Jeśli otrzymujesz wartości z SqlDataReader, upewnij się, aby sprawdzić go przed DBNull zanim spróbujesz go używać. Czasami wartość ta może być również interpretowana jako ciąg, więc musisz wpisać New Guid (rs ["my_guid"]), aby upewnić się, że masz guid do użycia w kodzie.

+0

zaloguj się, aby skomentować inne odpowiedzi – jinsungy

+1

"zaloguj się, aby skomentować inne odpowiedzi" zobaczysz moją nazwę użytkownika i ikonę, prawda? Jestem zalogowany, ale nie mam wystarczającej reputacji, aby komentować posty innych osób ... – SilverSkin

+0

. Teraz ty. ftfy. – NotMe