22

我应该在 C# 中使用什么数据类型来处理 SQL Server uniqueidentifier

我需要任何转换等吗?

4

3 回答 3

24

系统指南

无需转换。

于 2010-01-27T17:27:17.040 回答
15

系统指南

从数据库中读取可为空的 Uniqueidentifier 列时,请务必在尝试分配给 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); 

等等

于 2010-01-27T17:30:53.913 回答
2

如果您从 SQLDataReader 获取值,请确保在尝试使用它之前对照 DBNull 检查它。有时该值也可以解释为字符串,因此您需要键入 New Guid(rs["my_guid"]) 以确保您有一个要在代码中使用的 guid。

于 2010-01-27T17:36:59.977 回答