以文本方式查看主题 - 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 -- 谢谢! |