自动id生成,这是一个主键

时间:2010-05-20 09:52:50

标签: asp.net sql vb.net

在vb.net中输入新条目时,我想为记录分配一个唯一的ID 像数字一样我这样做

Dim ItemID As Integer
KAYAReqConn.Open()
SQLCmd = New SqlCommand("SELECT ISNULL(MAX(ItemID),0) AS ItemID from MstItem", ReqConn)
Dim dr As SqlDataReader

dr = SQLCmd.ExecuteReader
If dr.HasRows Then
    dr.Read()
    ItemID = dr("ItemID") + 1
End If
dr.Close()

在这种情况下,使用itemid作为唯一ID 格式是1,2,3 ...... 并且m找出最大值并分配给新记录,但是如果前一个id是a00001,a00002,a00003,a00004 ......那么如何分配。 我如何在这种情况下产生一个唯一的身份

2 个答案:

答案 0 :(得分:1)

你可以获取所有ID,逐个访问它,打破id并只取整数部分,从中找到最大值,生成下一个id并用prefix ...将它连接起来..

这可能是一个耗时的过程,但我找不到任何其他方式。

答案 1 :(得分:0)

对于这两种情况,您最好在数据库中使用自动递增的int identity字段。

对于'a0001',您仍然可以将其作为整数存储,如果'a0000'用于显示,则将其附加到您的代码中。或者可能有一个前缀字段来存储'a'部分 - 这取决于您的要求。