存储过程获得最新订单号

create proc proc_No
@id varchar(14) output,
@date varchar(20),
@tname varchar(50),
@col varchar(50),
@type char(2)
as
declare @aa nvarchar(14)
declare @sql nvarchar(255)
    set @sql=('select @aa=max('+@col+') from '+@tname+' where SUBSTRING('+@col+',3,8)=convert(varchar(8),CONVERT(datetime,'''+@date+'''),112)')
    exec sp_executesql @sql,N'@aa varchar(14) output',@aa output
    set @id=@aa
    if(@id is null)
        set @id=@type+convert(varchar(8),CONVERT(datetime,@date),112)+'001'
    else
        set @id=@type+convert(varchar(14),convert(numeric(14),substring(@id,3,14))+1)


declare @a varchar(14)
exec proc_No @a output,'2011-02-02','coures','cid','DD'
print @a

 调用:

 /// <summary>
        /// 通用流水号
        /// </summary>
        /// <param name="procName">存储过程名</param>
        /// <param name="tabName">表名</param>
        /// <param name="ColName">列名</param>
        /// <param name="QName">前缀类型名</param>
        /// <param name="date">时间</param>
        /// <returns></returns>
        public static string SqlCommandNum(string procName, string tabName, string ColName, string QName, string date)
        {
            using (SqlConnection conn = new SqlConnection(strconn))
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = procName;
                cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter p1 = new SqlParameter("@id", SqlDbType.VarChar, 14);
                p1.Direction = ParameterDirection.Output;
                SqlParameter p2 = new SqlParameter("@type", QName);
                SqlParameter p5 = new SqlParameter("@date", date);
                SqlParameter p3 = new SqlParameter("@tname", tabName);
                SqlParameter p4 = new SqlParameter("@col", ColName);
                cmd.Parameters.Add(p1);
                cmd.Parameters.Add(p2);
                cmd.Parameters.Add(p3);
                cmd.Parameters.Add(p4);
                cmd.Parameters.Add(p5);
                cmd.ExecuteNonQuery();
                string a = p1.Value.ToString();
                return a;
            }
        }

 

转载于:https://www.cnblogs.com/wzq806341010/p/3178892.html

销售订单数据库管理系统 1、某销售商的订单系统需要如下信息: (1)每个供应商包含供应商编号、名称、地址、联系电话等信息。 (2)每种产品包含产品号、产品名称、单价,库存数等信息。 (3)每个供应商可供应多种产品,每种产品可由多个供应商供应。 (4)客户包含编号、姓名、通信地址、电话等信息。 2、其业务规则描述如下: (1)一个客户可下多个订单,每个订单只能由一个客户下。客户下单时有下单时间。 (2)一个订单由订单号,订单状态,订单总价和多个订单细节组成。 (3)每个订单细节对应一个产品描述。订单细节由细节编号,订购数量,金额等组成。 3、系统功能基本要求: A.使用存储过程完成以下查询统计 (1)按照一定条件查询商品基本信息,比如商品名称、价格范围等信息。 (2)根据客户姓名统计每个客户的订单总额。 B.定义一些视图 (1)按销量展示所有商品。 (2)显示订单量最多的客户或者产品。 C.使用存储过程和触发器模拟完成一个订单交易 订单交易主要包括客户注册,登录,查询商品(非注册用户和注册用户均可),订购商品(注意订购商品只面向注册用户,订购的过程中需对商品库存进行判断,注意订购后商品库存的变化,订单总额的计算),支付,取消订单等全过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值