private int _id ;
private DateTime _inputTime;public String ProductID
{
get { return "PC"+_inpuTime.ToString(“yymmdd”)+_id.ToString().PadLeft(4,'0');}
}希望这能帮到你
private DateTime _inputTime;public String ProductID
{
get { return "PC"+_inpuTime.ToString(“yymmdd”)+_id.ToString().PadLeft(4,'0');}
}希望这能帮到你
解决方案 »
- asp.net如何执行一个EXE文件?在线等!
- 购物车跳转问题~~~~
- 我该选谁?
- 奇怪,找了一个日历控件,用.html的文件调用就没有问题,用.aspx的文件调用就报javascript错误????
- 如何将数据暂存客户端,日后提交?
- 求救:哪位有oracle for .net的組件 ODP 9.2.0.401這個版本啊
- ASP.NET(C#)中如何显示图片并链接详细
- 向大家求一个SQL语句
- 关于listbox的几个小问题,解决立刻结贴
- 要睡觉了,睡前再骂一次asp.net !!!!!!!!
- 验证控件与母版的冲突。。。。。。。。。。
- 一定要来看看,关于注册发送邮件的问题...在线等!!!!!!!!!
string date=System.DateTime.Now.Year;//取当前时间
string Num="";//可以存在数据库里面一个数字 每次去出来+1在放进去
string flowNum=a+data+Num;最后的结果
日后请多多指教
===============================================================================你太有才了
? 我来这里不过3次,日后请多多指教~~~~~:(
=========================
特晕
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication8
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
string year = System.DateTime.Now.Year.ToString().Substring(2);
string month = System.DateTime.Now.Month.ToString();
string day = System.DateTime.Now.Day.ToString();
if (month.Length < 2)
{
month = "0" + month;
}
if (day.Length < 2)
{
day = "0" + day;
}
Random rnd = new Random();
this.textBox1.Text = "PC" + year + month + day + rnd.Next(1000, 10000).ToString(); ;
}
}
}
偶用的是随即数,要放数据库的话还需要你自己去比对
何况日期,还用这么麻烦吗,ToString("yyyy-MM-dd"); 数字如001 int i=1; i.ToString("000");就可以了
关键是取后面流水号,建临时表,是最快的办法,当然你可以写SQL函数等等
manasheep(斯克迪亚) 的解答比较合适。
我来这里不过3次,日后请多多指教~~~~~:(
------------------------------------------
汗~~~~
这句都回出来了!
create table AutoOrdID
(
OrdID char(12) not null
)
go--随便添加一条日期早于今天的记录
insert AutoOrdID values('200508280001')
go----创建自动生成定单流水号的存储过程
create proc GetOrdID
@OrdID varchar(12) output --新生成的定单号
as
declare @year int, --记录当前日期年部分
@month int, --记录当前日期月部分
@FinOrdID varchar(12), --记录最后一次使用的定单号
@ID varchar(4) --记录流水号
begin
select @year=year(getdate())
select @month=month(getdate())
select @day=day(getdate())
select @OrdID='PC'+Str(@Year,2,0)+
(select
case
when @Month>=10 then Str(@Month,2,0)
when @Month<10 Then '0'+Str(@Month,1,0)
end)
select @FinOrdID=OrdID from AutoOrdID
if @OrdID<>substring(@FinOrdID,1,8)
select @OrdID=@OrdID+'0001'--新的一天,日期从0001开始
else
begin
select @ID=str(convert(int,substring(@FinOrdID,7,4)+1),4,0)
select @ID=replace(@ID,' ','0') --同一天内,日期增1
select @OrdID=@OrdID+@ID
end
update AutoOrdID set OrdID=@OrdID
end
go希望你好好研究研究。
比较适合的方法就是利用SQL的存储过程来实现:--新建一个表,保存最后一次使用的流水号,表中永远都只有一行一列记录,当生成新的流水号时记录就被更新,流水号的格式是PC+4位标准日期加4位流水号
create table AutoOrdID
(
OrdID char(10) not null
)
go--随便添加一条日期早于今天的记录
insert AutoOrdID values('PC05080001')
go----创建自动生成定单流水号的存储过程
create proc GetOrdID
@OrdID varchar(12) output --新生成的定单号
as
declare @year int, --记录当前日期年部分
@month int, --记录当前日期月部分
@FinOrdID varchar(12), --记录最后一次使用的定单号
@ID varchar(4) --记录流水号
begin
select @year=year(getdate())
select @month=month(getdate())
select @day=day(getdate())
select @OrdID='PC'+Str(@Year,2,0)+
(select
case
when @Month>=10 then Str(@Month,2,0)
when @Month<10 Then '0'+Str(@Month,1,0)
end)
select @FinOrdID=OrdID from AutoOrdID
if @OrdID<>substring(@FinOrdID,1,8)
select @OrdID=@OrdID+'0001'--新的一天,流水号从0001开始
else
begin
select @ID=str(convert(int,substring(@FinOrdID,7,4)+1),4,0)
select @ID=replace(@ID,' ','0') --同一天内,流水号增1
select @OrdID=@OrdID+@ID
end
update AutoOrdID set OrdID=@OrdID
end
go
我测试过,绝对可以。
希望你好好研究研究。
调用相关对象调用执行GetOrdID存储过程,然后调用相关对象查询AutoOrdID表中的记录,并赋值给一个变量,这样你就得到一个流水号了。
每插入新流水号时,先判断日期,看是否是新的一天,如果是则最后四位从0001开始
如果不是则最后四位加1
我屏幕在反射绿光