C#.NET和SQL Server中如何生成GUID

来源:互联网 发布:单片机检测高电平输入 编辑:程序博客网 时间:2024/05/17 04:23

GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。

  GUID永远是方便的
对于程序开发的各个方面,.NET Framework简化了建立和处理GUID数值的过程。在.NET程序需要的地方,这一功能很容易地生成唯一的数值。

------------
1、Guid.NewGuid().ToString("N") 结果为:
    38bddf48f43c48588e0d78761eaa1ce6
2、Guid.NewGuid().ToString("D") 结果为:
    57d99d89-caab-482a-a0e9-a0a803eed3ba
3、Guid.NewGuid().ToString("B") 结果为:
    {09f140d5-af72-44ba-a763-c861304b46f8}
4、Guid.NewGuid().ToString("P") 结果为:
    (778406c2-efff-4262-ab03-70a77d09c2b5)
可见默认的为第2种效果

=================================================================

GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。” 
1. 一个GUID为一个128位的整数(16字节),在使用唯一标识符的情况下,你可以在所有计算机和网络之间使用这一整数。 
2. GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。例如:337c7f2b-7a34-4f50-9141-bab9e6478cc8 即为有效的 GUID 值。 
3.世界上(Koffer注:应该是地球上)的任何两台计算机都不会生成重复的 GUID 值。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。 
4.在 Windows 平台上,GUID 应用非常广泛:注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。 
SQL SERVER中产生GUID

SQL Server数据类型uniqueidentifier能够存储一个GUID数值。你可以通过使用NEWID()函数在SQL Server中生成这一数值

在.NET程序中产生GUID

通过Guid这个结构体来产生:Guid.NewGuid().ToString(),注意这里的方法是NewGuid(),和数据库中的函数名不一样啊,我就在这里犯过错,以为数据库中也用NewGuid() 

[c-sharp] view plaincopy
  1. using System;  
  2. namespace ConAppLogTest  
  3. {  
  4.     public class Program  
  5.     {  
  6.         static void Main(string[] args)  
  7.         {  
  8.             string guid=System.Guid.NewGuid().ToString();  
  9.             Console.WriteLine(guid);  
  10.         }  
  11.     }  
  12. }  

输出:

GUID: c4208862-c7fe-4d14-86d4-7bd5c55bd850
请按任意键继续. . .

把一个字符串转换为GUID

[c-sharp] view plaincopy
  1. string id = "c4208862-c7fe-4d14-86d4-7bd5c55bd850";  
  2. Guid guid = new Guid(id);  



0 0