以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何查找连续序号中哪些被中断?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=72878)

--  作者:hotday1972
--  发布时间:2015/8/8 8:27:00
--  [求助]如何查找连续序号中哪些被中断?
求助一段代码,如何找出一段连续序号中被删除而造成的不连续,被删除的序号是哪些?谢谢
--  作者:有点蓝
--  发布时间:2015/8/8 8:44:00
--  
用假删除,设置一个删除标志,然后查询那些删除标志为true的行
[此贴子已经被作者于2015/8/8 8:43:57编辑过]

--  作者:hotday1972
--  发布时间:2015/8/8 8:46:00
--  
不好,序号不是自动生成的。可能存在5之后就是8这样的情况,不单单是由于删除造成的不连续。
--  作者:lsy
--  发布时间:2015/8/8 8:48:00
--  
Dim lst1 As List(Of String) = DataTables("表A").GetValues("第一列","第一列 >= \'037\' And 第一列 <= \'105\'") ‘要查询的编号区间
Dim lst2 As New List(Of String)
For i As Integer = 37 To 105
    If lst1.Contains(CStr(i).PadLeft(3,"0")) = False Then
        lst2.Add(CStr(i).PadLeft(3,"0"))
    End If
Next
For Each s As String In lst2
    Output.Show(s) ’缺失的编号
Next

--  作者:有点蓝
--  发布时间:2015/8/8 8:58:00
--  
Dim t As Integer
Dim d As New Dictionary(of Integer,Integer)
Dim j As Integer =0
For i As Integer =0 To Tables("表A").Rows.Count -2
 t = Tables("表A").Rows(i)("_Identify")
 If (t+1) <> Tables("表A").Rows(i+1)("_Identify") Then
    d.Add(j,t+1)
    j = j+1
 End If
Next
For m As Integer =0 To d.Count-1
  output.Show(d(m))
Next


--  作者:hotday1972
--  发布时间:2015/8/8 9:31:00
--  

谢谢!