在asp.net中将字符串转换为SQL Server uniqueidentifier

Shr*_*ree 4 c# sql-server asp.net

在asp.net中是否有任何内置方法将字符串转换uniqueidentifier为SQL Server,就像.ToString().

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

或者有人知道如何解决这个问题.谢谢.

Kas*_*aku 9

有一个构造函数Guid,这需要string作为一个参数.

Guid aGuid = new Guid(aString);
Run Code Online (Sandbox Code Playgroud)

确保它的格式正确:

包含以下格式之一的GUID的字符串("d"表示忽略大小写的十六进制数字):

32个连续数字:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

-要么-

组中包含8,4,4,4和12位数字的连字符.整个GUID可任选地包含在匹配的括号或括号:dddddddddddd-DDDDDDDD-dddddddddddd - 或 - {dddddddddddd-DDDDDDDD-dddddddddddd} - 或 - (dddddddddddd-DDDDDDDD-dddddddddddd)

-要么-

8位,4位和4位的组,以及8组2位数的子集,每组以"0x"或"0X"为前缀,并用逗号分隔.整个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;
Run Code Online (Sandbox Code Playgroud)