以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]网络编程的自动编号问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24662) |
||||
-- 作者:hiliuyong -- 发布时间:2012/10/19 16:10:00 -- [求助]网络编程的自动编号问题 Dim bh As String
pf = Format(dr("Riqi"),"yyMMdd") \'获得编号的前缀 cmd.C e.DataRow("Danhao") = bh
以上代码目的是如果是今天的第一单,单号就是121019001,第二单是121019002,依次类推。 运行报错,错误代码为 Exception has been thrown by the target of an invocation. |
||||
-- 作者:lihe60 -- 发布时间:2012/10/19 16:27:00 -- 上传附件。 |
||||
-- 作者:lin_hailun -- 发布时间:2012/10/19 16:29:00 -- 调试代码的技巧 http://www.foxtable.com/help/topics/1485.htm |
||||
-- 作者:hiliuyong -- 发布时间:2012/10/19 16:57:00 -- 狐爸来帮下忙吧,这个在系统里面,无法传附件的 |
||||
-- 作者:lin_hailun -- 发布时间:2012/10/19 17:02:00 -- 问题不详,联系客服QQ,说明问题,远程协助。 |
||||
-- 作者:hiliuyong -- 发布时间:2012/10/19 17:11:00 --
终于做好了一个例子, 目的就是按照日期,自动获取一个单号 比如今天是2012-10-19 获取的第一个是121019001 第二个是121019002 依次类推 |
||||
-- 作者:lin_hailun -- 发布时间:2012/10/19 17:56:00 --
|
||||
-- 作者:hiliuyong -- 发布时间:2012/10/19 19:00:00 -- ACCESS测试正常,在SQL SERVER2000下,在这句出错 max = max.Substring(6,3)
错误提示是 |
||||
-- 作者:lin_hailun -- 发布时间:2012/10/19 19:20:00 -- 在之前msgBox(max) 看看max是否获取正确,如果不正确,就调整你的sql语句。 楼主自己调试一翻吧。 |
||||
-- 作者:有点甜 -- 发布时间:2012/10/19 20:43:00 -- 这里出错,肯定是获取的值长度不够:
Dim bh As String Dim max As String Dim pf As String = "yyMMdd"
e.DataRow("Riqi") = Date.Today()
Dim cmd As New SQLCommand Dim dt As DataTable
cmd.C cmd.commandText = "Select max(Danhao) From Bill" max = cmd.ExecuteScalar
If max = "" OrElse Max.Length <> 9 Then bh = Format(e.DataRow("Riqi"), pf & "001") Else max = max.Substring(6,3) bh = Format(e.DataRow("Riqi"), pf) & Format(max+1, "000") End If
e.DataRow("Danhao") = bh |