2010-01-27 6 views
11

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

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

+4

Здесь перечислены эквивалентные типы .net для всех типов данных sql: http://msdn.microsoft.com/en-us/library/ms131092.aspx – DyingCactus

ответ

14

System.Guid.

Переходов не требуется.

+2

Проверьте эту ссылку, если у вас есть другие проблемы с отображением типов данных параметров: http://msdn.microsoft.com/en-us/library/ms131092.aspx –

13

System.Guid

При чтении NULLABLE столбцов UniqueIdentifier из вашей базы данных, не забудьте проверить, если значение равно нулю, прежде чем пытаться присвоить экземпляр 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); 

и т.д.

+0

Просто используйте Guid? А.К.А. Nullable , и вы можете назначить null. –

+0

Это не всегда работает, т. Е. Вам придется завершить преобразование его в не-nullable Guid в какой-то момент, если вы переходите к коду, который не допускает допустимых значений. –

+0

Посмотрите: DBNull! = Null –

2

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

+0

Войдите, чтобы прокомментировать другие ответы – jinsungy

+1

«Войдите, чтобы комментировать другие ответы», вы видите мое имя пользователя и значок, не так ли? Я вошел в систему, но у меня недостаточно репутации, чтобы комментировать сообщения других ... – SilverSkin

+0

. Теперь вы это делаете. ftfy. – NotMe

Смежные вопросы