<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

    C#中使用GUID

    C#中使用GUID

    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 應用非常廣泛:注冊表、類及接口標識、數據庫、甚至自動生成的機器名、目錄名等。

     

    .NET中使用GUID

    GUID 在 .NET 中使用非常廣泛,而且 .NET Framework 提供了專門 Guid 基礎結構。
    Guid 結構的常用法包括:
    1) Guid.NewGUID() 
    生成一個新的 GUID 唯一值
    2) Guid.ToString()
    將 GUID 值轉換成字符串,便于處理
    3)構造函數 Guid(string) 
    由 string 生成 Guid 結構,其中string 可以為大寫,也可以為小寫,可以包含兩端的定界符“{}”或“()”,甚至可以省略中間的“-”,Guid 結構的構造函數有很多,其它構造用法并不常用。

    .NET Framework 中可以使用類 GuidConverter 提供將 Guid 結構與各種其他表示形式相互轉換的類型轉換器。

     

    在C#中生成一個GUID

    處理一個唯一標識符使得存儲和獲得信息變得更加容易。在處理一個數據庫中這一功能變得尤其有用,因為一個GUID能夠操作一個主鍵。

    同樣,SQL Server也很好地集成了GUID的用途。SQL Server數據類型uniqueidentifier能夠存儲一個GUID數值。你可以通過使用NEWID()函數在SQL Server中生成這一數值,或者可以在SQL Server之外生成GUID,然后再手動地插入這一數值。

    在.NET中,后面一種方法顯得更加直接。.NET Framework中的基本System類包括GUID數值類型。除此之外,這一數值類型包含了處理GUID數值的方法。特別地,NewGUID方法允許你很容易地生成一個新的GUID。

     

     


     1using System; 
     2namespace DisplayGUID
     3{
     4    class Program
     5    {
     6        static void Main(string[] args)
     7        {
     8            GenerateGUID();
     9        }

    10        static void GenerateGUID()
    11        {
    12            Console.WriteLine("GUID:" + System.Guid.NewGuid().ToString());
    13        }

    14    }

    15}

     

    下面為這一程序的輸出:(雖然不同系統之間的GUID是變化的。)

    GUID: 9245fe4a-d402-451c-b9ed-9c1a04247482

    以上范例使用到System.Guid空間名稱的NewGuid函數來返回一個數值。在這一點上,你可以看到GUID是一個很好的功能,但在程序的什么地方使用到它們,并如何使用它們?

     

    在程序中使用一個GUID

    一個GUID可以在后臺數據庫中操作一個主鍵。以下代碼使用一個GUID在一個后臺數據庫中存儲信息,這一數據庫包含以下的列:

    pk_guid  —uniqueidentifier  數據類型 
    name      —nvarchar  數據類型 
    這樣出現一個包含文本框的簡單Windows窗體。當選擇按鈕時,文本框中的數據被插入到數據庫中name列。通過程序代碼可以生成一個GUID并存儲在pk_guid列中:

     


     1using System;
     2using System.Collections.Generic;
     3using System.ComponentModel;
     4using System.Data;
     5using System.Drawing;
     6using System.Linq;
     7using System.Text;
     8using System.Windows.Forms;
     9using System.Data.SqlClient;
    10
    11namespace GuidSqlDBExample
    12{
    13    public partial class Form1 : Form
    14    {
    15        public Form1()
    16        {
    17            InitializeComponent();
    18        }

    19
    20        private void btnInsert_Click(object sender, EventArgs e)
    21        {
    22            string _str = "server=(local);Initial Catalog=TestGuid;Integrated Security=SSPI";
    23            using (SqlConnection conn = new SqlConnection(_str))
    24            {
    25                try
    26                {
    27                    string _sqlInsert = "INSERT INTO dbo.Guid(pk_guid, name) VALUES ('"+ System.Guid.NewGuid().ToString() + "', '" + txtName.Text + "')";
    28                    conn.Open();
    29                    SqlCommand _cmd = new SqlCommand(_sqlInsert, conn);
    30                    _cmd.ExecuteNonQuery();   
    31                }

    32                catch (Exception ex)
    33                {
    34                    System.Console.Write("Error: " + ex.Message);
    35                }

    36            }

    37        }

    38    }

    39
    40}

     

     


    另一個GUID程序將一個唯一的標識符分配給一個.NET類或者接口,也就是說,GUID作為一個屬性被分配給類或者接口。可以使用標準屬性語法來實現這一過程: 本

    我們可以擴展第一個范例來分配一個GUID。System.Runtime.InteropServices空間名稱必須被引用來使用GUID屬性。以下C#代碼實現了這一過程:

     

     


     1using System;
     2using System.Collections.Generic;
     3using System.Linq;
     4using System.Text;
     5using System.Runtime.InteropServices; 
     6
     7namespace GuidTest
     8{
     9    [Guid("9245fe4a-d402-451c-b9ed-9c1a04247482")] 
    10    class Program
    11    {
    12        static void Main(string[] args)
    13        {
    14            GenerateGUID();
    15        }

    16        static void GenerateGUID()
    17        {
    18            Console.WriteLine("GUID:" + System.Guid.NewGuid().ToString());
    19        }

    20    }

    21}

     


    GUID永遠是方便的
    對于程序開發的各個方面,.NET Framework簡化了建立和處理GUID數值的過程。在.NET程序需要的地方,這一功能很容易地生成唯一的數值。

    分類: C#

    posted on 2012-05-09 15:25 ** 閱讀(1320) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    收藏夾

    C#學習

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: WWW国产成人免费观看视频| 18女人毛片水真多免费| 亚洲成年人在线观看| 在线看免费观看AV深夜影院| 亚洲人av高清无码| 亚洲国产精品乱码一区二区| 毛片免费视频播放| aa级女人大片喷水视频免费| 亚洲国产av高清无码| 亚洲日韩精品无码专区网站| xxxx日本免费| 久久免费99精品国产自在现线 | 亚洲第一AV网站| 久久久久免费看黄A片APP| 国产免费黄色无码视频| 国产亚洲福利在线视频| 亚洲精品美女久久777777| 四虎在线免费播放| 午夜理伦剧场免费| 丁香六月婷婷精品免费观看| 亚洲另类视频在线观看| 亚洲人精品午夜射精日韩| 免费看美女让人桶尿口| 99久久国产免费中文无字幕| 黄色a级片免费看| 亚洲卡一卡二卡乱码新区| 亚洲av无码无在线观看红杏| 国产又黄又爽又猛的免费视频播放 | 亚洲精品无码久久| 亚洲网站在线免费观看| 亚洲人精品午夜射精日韩| 国产小视频在线免费| 免费a级毛片无码a∨蜜芽试看 | 亚洲综合国产一区二区三区| 永久免费无码网站在线观看| 18以下岁毛片在免费播放| 国产真人无码作爱视频免费| 特级毛片aaaa级毛片免费| 亚洲久热无码av中文字幕| 亚洲人成网站在线观看播放青青| 亚洲成熟xxxxx电影|