我想在生成一个前段为字母,中段为年份,后段为递增的数,这样的一个ID如:XT20120012
我想从服务器提取时间,不想从客户端提取,而且怎么排除多用户同时生成时的重复?还有一个问题就是怎么才能让这个ID在年份改变的时候重新从0001开始排序哪?请各位大神给段代码!!谢谢!本人菜鸟中的菜鸟,请各位大神写的细一点,麻烦了!!
我想从服务器提取时间,不想从客户端提取,而且怎么排除多用户同时生成时的重复?还有一个问题就是怎么才能让这个ID在年份改变的时候重新从0001开始排序哪?请各位大神给段代码!!谢谢!本人菜鸟中的菜鸟,请各位大神写的细一点,麻烦了!!
{
string SqlString = "select Max(" + FiledName + ") from " + TableName + "";
string ReturnID = DateTime.Now.ToString("XTyyyy");
using (SqlConnection connetion = new SqlConnection(connectionString))
{
connetion.Open();
using (SqlCommand Command =new SqlCommand(SqlString,connetion))
{
string str = Command.ExecuteScalar().ToString();
if (!string.IsNullOrEmpty(str))
{
if (str.Substring(0, 6) != ReturnID)
{
ReturnID += ReturnID + "0001";
}
else
{
str = str.Substring(str.Length - 4, 4);
lReturnID += (Convert.ToInt32(str) + 1).ToString("0000");
}
}
else
{
ReturnID += "0001";
}
}
}
return ReturnID;
}
{
ReturnID += "0001";
}
{
string SqlString = "select Max(" + FiledName + ") from " + TableName + "";
string ReturnID = DateTime.Now.ToString("XTyyyy");
using (SqlConnection connetion = new SqlConnection(connectionString))
{
connetion.Open();
using (SqlCommand Command =new SqlCommand(SqlString,connetion))
{
string str = Command.ExecuteScalar().ToString();
if (!string.IsNullOrEmpty(str))
{
if (str.Substring(0, 6) != ReturnID)
{
ReturnID += "0001";
}
else
{
str = str.Substring(str.Length - 4, 4);
ReturnID += (Convert.ToInt32(str) + 1).ToString("0000");
}
}
else
{
ReturnID += "0001";
}
}
}
return ReturnID;
}