以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]字符主键如何用代码自增  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51461)

--  作者:云淡风轻
--  发布时间:2014/5/27 9:27:00
--  [求助]字符主键如何用代码自增

主键内容如图:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140527092418.jpg
图片点击可在新窗口打开查看

 

如何每增加一行,主键自增。

 

我用这段代码可以实现:

Dim t As String = e.DataTable.Compute("Max(cgid)", "")
If t.substring(2,1) = "0" Then
e.DataRow("cgid") = "CG0" & t.substring(3,2) + 1
Else
e.DataRow("cgid") = "CG" & t.substring(2,3) + 1
End If

 

能否精简?

[此贴子已经被作者于2014-5-27 9:30:42编辑过]

--  作者:Bin
--  发布时间:2014/5/27 9:31:00
--  
http://www.foxtable.com/help/topics/1994.htm
--  作者:有点甜
--  发布时间:2014/5/27 9:31:00
--  

 不能,只有整型才能自增。

 

 变通一下处理吧,显示的时候用表达式。

 

 

 如 http://www.foxtable.com/help/topics/1443.htm

 


--  作者:有点甜
--  发布时间:2014/5/27 9:33:00
--  

 自动编号可以看这里 http://www.foxtable.com/help/topics/2403.htm

 


--  作者:有点甜
--  发布时间:2014/5/27 9:36:00
--  
Dim t As String = e.DataTable.Compute("Max(cgid)")
If t.StartsWith("CG") Then
    e.DataRow("cgid") = "CG" & Format(Cint(t.substring(2,3) + 1, "000")
End If