当前位置: 代码迷 >> 综合 >> C# 中什么是GUID?
  详细解决方案

C# 中什么是GUID?

热度:62   发布时间:2024-01-24 12:39:16.0

全局唯一标识符(GUID,Globally Unique Identifier):是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。GUID一词有时也专指微软对UUID标准的实现

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 应用非常广泛:注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。

   public string getGUID()
{

 System.Guid guid = new Guid();
guid = Guid.NewGuid();

string str = guid.ToString();
return str;
}

实例:

/// <summary>
/// 将本地文件保存到数据库中
/// </summary>
private void SaveFileToDb(string filePath)
{
string fileName = Path.GetFileName(filePath);
string fileExtension = Path.GetExtension(filePath);
byte[] fileContent = this.GetFileStream(filePath);
string commandText = @"INSERT INTO MultilayerFiles(FileKey, FileName, FileExtension, FileContent, CreateDateTime) VALUES (@FileKey, @FileName, @FileExtension, @FileContent, @CreateDateTime)";

    using (SqlConnection conn = new SqlConnection(ConnectionString))
{
SqlCommand comm = new SqlCommand(commandText, conn);
comm.Parameters.AddWithValue("@FileKey", Guid.NewGuid());
comm.Parameters.AddWithValue("@FileName", fileName);
comm.Parameters.AddWithValue("@FileExtension", fileExtension);
comm.Parameters.AddWithValue("@FileContent", fileContent);
comm.Parameters.AddWithValue("@CreateDateTime", DateTime.Now);
conn.Open();
comm.ExecuteNonQuery();
}
}