Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:后台连续编号

1楼
blackzhu 发表于: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开始,这个代码错在哪儿?

2楼
狐狸爸爸 发表于: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")

3楼
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?不知为什么?
4楼
blackzhu 发表于:2011/9/19 14:24:00
换个浏览器貌似可以啊.
5楼
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

6楼
狐狸爸爸 发表于:2011/9/19 15:27:00
换什么浏览器了?
7楼
blackzhu 发表于:2011/9/20 11:20:00
谷歌
共8 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .01953 s, 2 queries.