楼主:您的序号列的数据类型需要改一下,统一改为整数型,然后在列属性的整数位数项设为3,这样比较好处理一点,因为您在序号列中输入的1与001如是字符型的话是不同概念的两个数,其它的代码如下:
Dim dr As DataRow =e.DataRow
Select e.DataCol.Name
Case "日期","序号"
If dr.IsNull("日期") OrElse dr.isnull("序号") Then
dr("编号") = Nothing
Else
Dim drs As List(of DataRow) =e.DataTable.Select("日期 =#" & dr("日期") & "# and 序号 ='" & dr("序号") & "'" ,"_Identify")
Dim i As Integer
For Each tr As DataRow In drs
Dim d As Date = tr("日期")
Dim xh As Integer =tr("序号")
Dim bh As String = Format(d,"yyyyMMdd") & format(xh,"000") '生成编号的前缀
i =i+1
tr("编号") = bh & format(i,"000")
Next
End If
End Select