过程不会自动生成编码的数字

时间:2014-04-01 01:20:53

标签: vb.net auto-generate

我的代码是:

Private Function CreateID() As Integer
    'finds the current highest ID
    For Each row As DataRow In MedDT.Rows
        If row.Item("MedicineID") > CreateID Then
            CreateID = row.Item("MedicineID")
        End If
    Next
    'returns a value for eventID that is unused as its higher then the current highest
    Return CreateID
End Function

它应该自动生成一个比DataTable中的最高值高一个的数字但由于某种原因它不起作用 我调用Form_Load过程中的过程来填充文本框。

2 个答案:

答案 0 :(得分:0)

您正在扫描DataSet以获取最高的MedicineID号,但是在返回之前忘记将该值递增1,只需将return语句更改为:

Return CreateID + 1

你应该只将ID列标记为IDENTITY并忘记那件微不足道的事情

答案 1 :(得分:0)

只是添加Machinarius所说的,数据表本身在列上有一个自动增量选项

DataColumn.AutoIncrement = true;
DataColumn.AutoIncrementSeed = 1;
DataColumn.AutoIncrementStep = 1;

因此,如果您不从数据库加载数据,也可以使用此选项。