以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 后台连续编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12881) |
-- 作者:blackzhu -- 发布时间:2011/9/19 12:06:00 -- 后台连续编号 If e.DataCol.Name = "时间" Then \'如果更改的是身份证号码列
后台已经有1 2 3三个连续编号,同一天,然后打开系统再次编号,编号还是从1开始,这个代码错在哪儿? |
-- 作者:狐狸爸爸 -- 发布时间:2011/9/19 12:15:00 -- e.DataRow("编号") = Format(e.DataRow("时间"),"yyMMdd") & Format(e.DataTable.Compute("Count(时间)","时间= #" & e.DataRow("时间") & "# ") & "\'"),"000")
应该改为:
e.DataRow("编号") = Format(e.DataRow("时间"),"yyMMdd") & Format(dt.Datarow(0)("编号1") + 1,"000") |
-- 作者:blackzhu -- 发布时间:2011/9/19 14:21:00 -- 这个不行,刚才我跟你谈过后将代码改成: If e.DataCol.Name = "时间" Then \'如果更改的是身份证号码列 If e.DataRow.IsNull("时间") Then \'身份证号码是否为空 e.DataRow("编号") = Nothing \'如果为空,则清除出生日期 Else Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT * From {编号1} Where 时间 = #" & e.DataRow("时间") & "#" dt = cmd.ExecuteReader() If dt.Datarows.Count> 0 Then e.DataRow("编号") = Format(dt.DataRows(0)("编号") + 1,"000") Else e.DataRow("编号") = Format(e.DataRow("时间"),"yyMMdd") & "001" End If End If End If 但是不管是保存还是不保存,后台三个编号 001 002 003 新增行做来做去都是002?不知为什么?
|
-- 作者:blackzhu -- 发布时间:2011/9/19 14:24:00 -- 换个浏览器貌似可以啊. |
-- 作者:客人 -- 发布时间:2011/9/19 15:08:00 -- 怎么不回复了? |
-- 作者:blackzhu -- 发布时间:2011/9/19 15:15:00 -- 搞定了: 按照老大做发,始终是第一行+1而已. If e.DataCol.Name = "时间" Then \'如果更改的是身份证号码列 If e.DataRow.IsNull("时间") Then \'身份证号码是否为空 e.DataRow("编号") = Nothing \'如果为空,则清除出生日期 Else Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT * From {编号1} Where 时间 = #" & e.NewValue & "#" dt = cmd.ExecuteReader() If dt.Datarows.Count> 0 Then e.DataRow("编号") = Format(dt.Compute("Max(编号)") + 1,"000") Else e.DataRow("编号") = Format(e.DataRow("时间"),"yyMMdd") & "001" End If End If End If |
-- 作者:狐狸爸爸 -- 发布时间:2011/9/19 15:27:00 -- 换什么浏览器了? |
-- 作者:blackzhu -- 发布时间:2011/9/20 11:20:00 -- 谷歌 |