求教订单号+1代码怎么写呀

玛莎的飞飞 2013-07-07 01:11:08
就是想在文本框里生成一个日期+00001这样的订单号 比如2013070600001
然后在第二次打开form的时候会自动加1 就是2013070600002这样
我用了
TxtOrderNo.Text = System.DateTime.Now.ToString("yyyyMMdd") + Replace(Space(5 - Len(i & "")), " ", "0") & i
可是不会用i=i+1的累加 求教怎么写代码呀
还有还有,怎么样让combobox里面下拉下来是数据库里面的内容啊
求大神教一下 希望尽量详细点~~
...全文
350 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 2013-07-12
  • 打赏
  • 举报
回复

 /// <summary>
        /// 获取表数据的主键,格式为前缀+时间+流水号 如CK20120102001
        /// </summary>
        /// <param name="Ext">前缀,可以为空</param>
        /// <param name="TableName">表名</param>
        /// <param name="ColName">列名</param>
        /// <param name="Format">时间格式化字符串(yyyyMMdd)</param>
        /// <param name="len">流水号长度</param>
        /// <returns>主键</returns>
        public static string GetTablePK(string Ext, string TableName, string ColName, string Format, int len)
        {
            string time = Ext + DateTime.Now.ToString(Format);
            string sql = "select max(right(" + ColName + "," + len.ToString() + ")+1) from " + TableName + " where " + ColName + " like '" + time + "%'";
            object o = dosoft.DAL.DbHelperSQL.GetSingle(sql);
            if (o == null || o.ToString() == "")
            {
                return time + "1".PadLeft(len, '0');
            }
            else
            {
                return time + o.ToString().PadLeft(len, '0');
            }
        }
不解释 自己看 好了给分 谢谢
Wang-Yucai 2013-07-12
  • 打赏
  • 举报
回复

string orderCode = string.Format("{0}{1}", DateTime.Now.ToString("yyyyMMdd"), (autoIncreaseVariable++).ToString().PadLeft(5, '0'));
其中autoIncreaseVariable可以是Int32或Int64。还是推荐Int64
Vincent_MXL 2013-07-12
  • 打赏
  • 举报
回复
可定义一个 static 变量 比如: static n as integer Form_Load(){ n = n + 1 }
htpower 2013-07-08
  • 打赏
  • 举报
回复
先查询当天一共有几条数据,然后直接+1不就行了? select count(*) as a from tabelname where 日期=getdate() 出来的如:1 那你拼凑单号的时候不就可以直接+1后拼凑了么?
xxxuan 2013-07-08
  • 打赏
  • 举报
回复
1) select max(right(订单号,5)) as maxno from tablename where left(订单号,5) like '" & add1 & "%' 2) If IsDBNull(TmpDt1.Rows(0).Item("maxno")) Then lcno = add1+Microsoft.VisualBasic.Right("00000000000001", 5) Else lcno = add1 + Microsoft.VisualBasic.Format(Val(Microsoft.VisualBasic.Right(TmpDt1.Rows(0).Item("maxno"),5)) + 1, Microsoft.VisualBasic.Right("0000000000000", 5)) End If
men52676521 2013-07-08
  • 打赏
  • 举报
回复
引用 2 楼 htpower 的回复:
先查询当天一共有几条数据,然后直接+1不就行了? select count(*) as a from tabelname where 日期=getdate() 出来的如:1 那你拼凑单号的时候不就可以直接+1后拼凑了么?
绝对的支持,我们都这样取

16,719

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧