111,126
社区成员
发帖
与我相关
我的任务
分享
#region 生成单号
SqlCommand cmd = new SqlCommand("", conn);
cmd.CommandText = "select top 1 帐单号 from 开单表 order by id desc";
string danhao = Convert.ToString(cmd.ExecuteScalar());
string time = DateTime.Today.ToString("yyyyMMdd");
if (danhao.IndexOf(time) != -1)
{
int i = Convert.ToInt32(danhao.Substring(8)) + 1;
tbdan.Text = danhao.Substring(0, 8) + i.ToString();
}
else
{
tbdan.Text = time + 1;
}
#endregion
这个虽然是可以实现自增,但发现这个不太好,因为它的格式为200904241,200904242 ....200904249,但2009042410--2009042419这10张帐就会排在200904241的后面了。现我想格式为200905240001(帐单号数据类型为nvarchar),前8位表示年月日,后四位表示该天的流水号。因为我是用编程的方式实现的(所以与网上查到在数据库里写存储过程实现单号方法不同,我不太会用存储过程)。怎么去设置后面的四位的格式哦?
if (danhao.IndexOf(time) != -1)
{
int i = Convert.ToInt32(danhao.Substring(8)) + 1;
tbdan.Text = danhao.Substring(0, 8) + i.ToString().PadLeft(4,'0');
}
else
{
tbdan.Text = time + "0001";
}