以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  老师自动编号有部分代码,读不懂,请帮忙解释一下  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160506)

--  作者:和谐
--  发布时间:2021/2/4 17:52:00
--  老师自动编号有部分代码,读不懂,请帮忙解释一下

图片点击可在新窗口打开查看此主题相关图片如下:自动编号1.png
图片点击可在新窗口打开查看

老师编号列是字符型,怎么可以转换成整数型呢?还有这部分代码不是很懂请老师帮我解答一下

--  作者:有点蓝
--  发布时间:2021/2/4 20:24:00
--  
转换参考:http://www.foxtable.com/webhelp/topics/0324.htm

什么地方不懂请具体指出来

Dim dt As DataTable
Dim
 cmd As New SQLCommand
cmd
.ConnectionName = "数据源名称"
cmd
.CommandText = "Selec类别, Max(编号) As 编号 From {产品} Group By 类别" 使用sql分组获取每个类别的最大编号
dt
 = cmd.ExecuteReader 
flbhs.Clear()‘清空编号集合
For
 Each dr As DataRow In dt.DataRows 
    Dim qz As String = dr("
类别"\'编号前缀
    Dim bh As String =  dr("
编号")
    Dim id As Integer
    If bh.Length = 5 Then 如果编号长度为5
        bh = bh.SubString(2) 截取编号从第三位开始的数据,比如编号是HA001,SubString(2)后的值为001
        If Integer.TryParse(bh,id) Then 转换为整数
            
flbhs.Add(qz, id) 添加到集合中
        End If
    
End If
Next

--  作者:和谐
--  发布时间:2021/2/5 9:27:00
--  
 If bh.Length = 5 Then 如果编号长度为5
        bh = bh.SubString(2) 截取编号从第三位开始的数据,比如编号是HA001,SubString(2)后的值为001
老师就这2行代码我的编号长度超过了5,例如我的编号是:kkibcd001,也可以自动编号正常?就是不明白,要是截取第三位开始的数据那就是:ibcd001,也就不能转换位整数型了?但是他依然可以正常编号?

[此贴子已经被作者于2021/2/5 9:28:12编辑过]

--  作者:有点蓝
--  发布时间:2021/2/5 9:56:00
--  
不可能的,调试一下

For Each dr As DataRow In dt.DataRows 
    Dim qz As String = dr("
类别"\'编号前缀
    Dim bh As String =  dr("
编号")
    Dim id As Integer
msgbox("bh=" & bh & ",length=" & bh.Length)
    If bh.Length = 5 Then 如果编号长度为5

--  作者:和谐
--  发布时间:2021/2/5 11:18:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自动编号问题.rar


但是确实可以自动编出字符长度不同又超过长度为2的编号,就是搞不明白
[此贴子已经被作者于2021/2/5 11:19:29编辑过]

--  作者:有点蓝
--  发布时间:2021/2/5 11:47:00
--  
可以是可以,重启服务器项目后,每次都会从1开始的吧,而不是从上次最大值开始
--  作者:和谐
--  发布时间:2021/2/5 12:03:00
--  
老师,保存后正常退出,再打开服务端,启动,再打开客户端连上,再输入可以正常编号,不会从1开始,也就是说这个自动编号是正常的,就是代码这样写,也能任意编制,还可以正常?我就搞不懂了,请老师明示
--  作者:有点蓝
--  发布时间:2021/2/5 13:32:00
--  
请做个例子发过来测试一下
--  作者:和谐
--  发布时间:2021/2/5 14:08:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:open自动编号2.rar


--  作者:有点蓝
--  发布时间:2021/2/5 14:51:00
--  
我测试重启服务端后,每次客户端第一个类别的编码都是从001开始的。

您怎么测试的?按什么步骤测试?