总字符串长度为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");
}
}
}
我的桌子看起来像
CREATE TABLE [dbo].[voiceno](
[ID] [int] IDENTITY(1,1) NOT NULL,
[voiceno] [nvarchar](50) NULL)
答案 0 :(得分:4)
您可以有一个获取当前值并为您提供下一个值的函数:
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