使用 C# 自动字母数字唯一 Id

Auto alphanumeric Unique Id with C#

字符串总长度为 5 个字符。我有一个场景,ID 开头为:A0001 结尾为:A9999,B0001 到 B9999

现在,

如何创建这种格式?

我试过了:

int a;
        using (SqlCommand command2 = new SqlCommand("select * from voiceno WHERE ID = '1'", con))
        {
            con.Close();
            con.Open();

            SqlDataReader dr;
            dr = command2.ExecuteReader();
            if (dr.Read())
            {
                string val = dr["voiceno"].ToString();
                if (val == "0")
                {
                    txtinvoiceno.Text = "00001";
                }
                else
                {
                    a = Convert.ToInt32(dr["voiceno"].ToString());         
                    a = a + 1;
                    txtinvoiceno.Text = a.ToString("00000");
                }
            }

        }

我的table长得像

CREATE TABLE [dbo].[voiceno](
[ID] [int] IDENTITY(1,1) NOT NULL,
[voiceno] [nvarchar](50) NULL)

你可以有一个获取当前值并为你提供下一个值的函数:

public string Next(string cur)
{
    int num = int.Parse(cur.Substring(1));
    char chr = cur[0];
    num++;
    if (num > 9999)
    {
        num = 0;
        chr++;
    }
    return chr + num.ToString().PadLeft(4, '0');
}

要让它从数据库中获取最后一个:

您可以从数据库中获取当前最大的ID,例如:

select Max(id) from voiceno

也看看 使用 SQL 服务器

的自定义自动生成序列

Live Demo