一个会员订单系统,会员登陆后填写订单,订单号是这样的结构:会员号+日期号+流水号!,流水号为此会员如果第一次填写订单,那么他的订单号就是001+050824+01,如果他不是第一次填写订单那么他的订单号就是在原来的基础上比方说001+050824+01上加1变成00105082402,请问这里怎么判断他不是第一次填写订单了,我的想法是判断订单号这个字段是否为空,如果为空在默认值就是001+050824+01,默认就是01,如果不为空则在此基础上加1,不过实现不知道如何实现,请帮忙!!
调试欢乐多
001050824 你可以动态得到的。
然后Select count(订单号) from tableorder where orderno like '001050824%'
得出的结果可以作为你的流水号了不?也有人专门用Sql来生成流水号的,可能更完善。
但不知道到底该怎么取判断和添加上1!
string RegieID=Request.Cookies["Belong_Regie_ID"].Value;
string MemberID=Request.Cookies["Member_ID"].Value;
string Order_Date=DateTime.Now.ToString("yyMMdd");
string Order_No=RegieID+MemberID+Order_Date;
SqlConnection Conn=DB_Operate.Create_Connection();
Conn.Open();
SqlDataAdapter Order_Num=new SqlDataAdapter("Select * From Order_Code Where Order_Code Like '%" + RegieID+MemberID+Order_Date + "%'",Conn);
DataSet DS=new DataSet();
Order_Num.Fill(DS,"Order_Num");
if(DS.Tables[0].Rows.Count==0)
{
Order_No=Order_No+"01";
}
else
{
Order_No=此处代码该如何写+"1";
}
先取得当前最大的编号
SELECT MAX(Num) as maxNum
FROM 表名
WHERE (REPLACE(CONVERT(varchar(10), GETDATE(), 120), '-', '')
= '20' + SUBSTRING(Num, 4, 6))
如果编号为空,则编号为001+日期(经过处理)+01,如果不为空,则将此值转换成一个long值,然后将此long值加1,然后再转换成对应的编号格式就行了。
long lngNumber=0;
//证书号生成规则:(YYYY)+0001
strSQL="select max(CertificateNumber) as CFID from CertificateInfo where year(TestDate)=year(getdate())"
DataTable dtTemp=ds.GetTable(strSQL,false);
if(dtTemp !=null)
{
if(dtTemp.Rows[0]["CFID"] !=DBNull.Value)
{
lngNumber=Int64.Parse(dtTemp.Rows[0]["CFID"].ToString());
lngNumber+=1;
}
else
{
lngNumber=Int64.Parse(DateTime.Today.Year.ToString() + "0001");
}
}
----------("Select count(*) From Order_Code Where Order_Code Like '%" + RegieID+MemberID+Order_Date + "%'",Conn);
int no = Convert.Toint32(DS.tables[0].rows[0][0]) + 1;
if (no < 10)
{
Order_No=Order_No+"0" + no.tostring();
}
else
{
Order_No=Order_No+no.tostring();
}