Foxtable(狐表)用户栏目专家坐堂 → 后台连续编号


  共有10571人关注过本帖树形打印复制链接

主题:后台连续编号

帅哥哟,离线,有人找我吗?
blackzhu
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
后台连续编号  发帖心情 Post By:2011/9/19 12:06: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 Max(编号) From {编号1} Where 时间 =#" & e.DataRow("时间") & "#"
        dt = cmd.ExecuteReader()
        If dt.Datarows.Count> 0 Then
            e.DataRow("编号") = Format(e.DataRow("时间"),"yyMMdd") & Format(e.DataTable.Compute("Count(时间)","时间= #" & e.DataRow("时间") & "# ") & "'"),"000")
        End If
    End If
End If

 

  后台已经有1 2 3三个连续编号,同一天,然后打开系统再次编号,编号还是从1开始,这个代码错在哪儿?


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/9/19 14:24:00 [显示全部帖子]

换个浏览器貌似可以啊.

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/9/20 11:20:00 [显示全部帖子]

谷歌

 回到顶部