创建自定义格式的GUID

时间:2010-02-22 09:59:04

标签: .net sql-server-2005

.NET允许以预先确定的格式创建GUID ..

我想用自定义格式创建它..

有可能吗?怎么样?

2 个答案:

答案 0 :(得分:1)

可能还有其他方法,但接下来是我需要在PL / SQL编辑器中使用.NET Guid的方法(字节的顺序不同):

  var bytes = guid.ToByteArray();
  var oraBytes =
    new[]
      {
        bytes[3], bytes[2], bytes[1], bytes[0],
        bytes[5], bytes[4],
        bytes[7], bytes[6],
        bytes[8], bytes[9], bytes[10], bytes[11], bytes[12], 
        bytes[13], bytes[14], bytes[15]
      };

  Guid g = new Guid(oraBytes);
  return g.ToString("N").ToUpperInvariant();

在您需要的时候,它可能会为您提供一些灵感。

答案 1 :(得分:0)

来自msdn:

public Guid(
    string g
)
     

G:

     

Type:System .. ::。String一个字符串   其中一个包含一个GUID   以下格式('d'代表a   十六进制数字,其情况是   忽略):32个连续数字:   dddddddddddddddddddddddddddddddd    - 或 - 8,4,4,4和12位数字的组,在。之间有连字符   组。整个GUID可以选择   用括号括起来   括弧:   dddddddddddd-DDDDDDDD-dddddddddddd    - 或 - {dddddddd -ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd    - 或 - (dddddddd -dddd-dddd-dddd-dddddddddddddddddddddddddddddddddddddddddddddddddd    - 或 - 8位,4位和4位数的组,以及8组2位数的子集,   每组以“0x”或前缀为前缀   “0X”,以逗号分隔。该   整个GUID以及子集都是   用匹配的括号括起来:   {0xdddddddd,0xdddd,   0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}}   所有大括号,逗号和“0x”前缀   是必要的。所有嵌入空间都是   忽略。一组中的所有前导零   被忽略了。数字显示在   组是最大数量   有意义的数字可以出现在   那个小组。您可以指定从1到   为a显示的位数   组。指定的数字是   假设是低位数   小组。