簡體   English   中英

生成mac地址的代碼生成重復項

[英]Code to generate mac addresses is generating duplicates

我已經生成了一個MAC地址塊,需要將它們存儲在Oracle 11gR2表中。 我通過SQL Developer Version 4.0.0.13創建了一個架構,如下所示:

CREATE TABLE "USER"."MAC_DB" 
(   
    "MAC_ADDRESS" VARCHAR2(20 BYTE) NOT NULL ENABLE, 
    "STATUS" VARCHAR2(20 BYTE) DEFAULT 'Available' NOT NULL ENABLE, 
    "PO_NUMBER" VARCHAR2(20 BYTE), 
     CONSTRAINT "MAC_DB_PK" PRIMARY KEY ("MAC_ADDRESS")

) 

插入生成的數據會導致一系列重復的值,對此我感到非常困惑。

以下是我用於生成mac地址的代碼。 它不是很漂亮,可以改進並包含一個錯誤。

我正在尋找有關該錯誤發生位置的一些指導

public List<string> generateMACAddresses(string prefix)
{
    List<string> addresses = new List<string>();
    for (int i = 0x00000; i <= 0xFFFFF; i++)
    {                
        addresses.Add(prefix+i.ToString("X").PadRight(5,'0'));

        using (var sw = new StreamWriter("macAddresses.txt", append: true))
        {                     
            sw.WriteLine(mac);
        }
    }         

    return addresses;            
}

該方法通過以下方式調用:

generateMACAddresses("AB2B3B4");

我期望生成1,048,576,但是在導入生成的txt文件后,我最終只能得到646574。

我想你應該使用PadLeft代替PadRight

舉個例子:

  1.PadRight(5, '0'); // 10000
 10.PadRight(5, '0'); // 10000 (again)
100.PadRight(5, '0'); // 10000 (and again)

您應該執行PadLeft以避免重復

  1.PadLeft(5, '0'); // 00001
 10.PadLeft(5, '0'); // 00010
100.PadLeft(5, '0'); // 00100

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM