在ASP.NET中将字符串转换为SQL Server唯一标识符

4

在asp.net中有没有内置的方法可以将字符串转换为SQL Server中的uniqueidentifier,就像使用.ToString()那样。

我得到了一个错误:Conversion failed when converting from a character string to uniqueidentifier.

还有谁有什么想法来解决这个问题。谢谢。


我在数据库中有一个名为 @RoleID UNIQUEIDENTIFIER 的字段。我想通过 asp.net 发送一个字符串值。如果我避免这个列,一切都正常。如果传递值,我会得到上述错误。谢谢。 - 4b0
5个回答

9

有一个 Guid 的构造函数,它接受一个 string 类型的参数。

Guid aGuid = new Guid(aString);

确保它的格式正确:

一个包含GUID的字符串,格式如下(“d”表示忽略大小写的十六进制数字):

32个连续数字:dddddddddddddddddddddddddddddddd

-或-

由8个、4个、4个、4个和12个数字组成的分组,组与组之间用连字符连接。整个GUID可以选择性地用匹配的大括号或圆括号括起来:dddddddd-dddd-dddd-dddd-dddddddddddd -或- {dddddddd-dddd-dddd-dddd-dddddddddddd} -或- (dddddddd-dddd-dddd-dddd-dddddddddddd)

-或-

由8个、4个和4个数字以及8个包含"0x"或"0X"前缀的2位数字的子集组成,各组之间用逗号分隔。整个GUID以及子集都用匹配的大括号括起来:{0xdddddddd, 0xdddd, 0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}}

完整文档可以在这里找到。

您可以将您的RoleID guid作为参数传递:

Guid roleID = new Guid(roleIDAsString);
sqlCommand.Parameters.Add("@RoleID", SqlDbType.UniqueIdentifier).Value = roleID;

3
Guid outGuid;
Guid.TryParse(stringInput, out outGuid);

如果字符串格式不正确,程序不会崩溃。

1

您可以使用

 Guid myNew = new Guid("xxxx-xxx");

0
string aspUserID = myObject.ProviderUserKey.ToString();
Guid userGuid = new Guid(aspUserID);

或者

 Guid yourGuid = new Guid(yourString);

0

在使用字符串值之前,请检查它

Guid g = new Guid(string) ;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接