我的代码是:
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过程中的过程来填充文本框。
答案 0 :(得分:0)
您正在扫描DataSet以获取最高的MedicineID号,但是在返回之前忘记将该值递增1,只需将return语句更改为:
Return CreateID + 1
你应该只将ID列标记为IDENTITY并忘记那件微不足道的事情
答案 1 :(得分:0)
只是添加Machinarius所说的,数据表本身在列上有一个自动增量选项
DataColumn.AutoIncrement = true;
DataColumn.AutoIncrementSeed = 1;
DataColumn.AutoIncrementStep = 1;
因此,如果您不从数据库加载数据,也可以使用此选项。