Эквивалентный уникальный идентификатор SQL Server в C # - PullRequest
12 голосов
/ 27 января 2010

Какой тип данных я должен использовать в C # для работы с SQL Server uniqueidentifier .

Нужны ли какие-либо преобразования и т.д.?

Ответы [ 3 ]

14 голосов
/ 27 января 2010

System.Guid

При чтении столбцов уникального идентификатора из вашей базы данных обязательно проверьте, является ли значение пустым, прежде чем пытаться присвоить экземпляру Guid, так как Guids не обнуляются. Например:

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

и т.д.

14 голосов
/ 27 января 2010

System.Guid.

Преобразование не требуется.

2 голосов
/ 27 января 2010

Если вы получаете значение из SQLDataReader, обязательно проверьте его с DBNull, прежде чем пытаться его использовать. Иногда значение также можно интерпретировать как строку, поэтому вам нужно набрать New Guid (rs ["my_guid"]), чтобы убедиться, что у вас есть guid для использования в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...