我正在尝试递增主键,在这种情况下是一个ID号,手动而不是使用SQL或OleDBConnection或类似的东西。理想情况下,我要做的是保存新记录时,转到数据库中的最后一条记录,从该记录中提取ID号,再加上一条记录,并将该新号码设置为新记录的ID记录。但是,我无法理解我的生活。继承人我所拥有的:
Dim max As Integer
Dim id As Integer
Dim lastrow As Integer
max = Database1DataSet1.Table.Rows.Count
For i = max To max
Dim column As DataColumn = Database1DataSet1.Table.IdColumn
lastrow = Database1DataSet1.Table.Rows(max).ToString
Next i
我在数据库中有17条记录,我不断得到的错误是“17号位没有行。”
答案 0 :(得分:2)
所有集合在.NET中都是零,所以你的循环需要一直到typedef struct adr{
char anrede [5];
char vorname [51];
char nachname [51];
char plz [8];
char ort [60];
char strasse [51];
char land [24];
char festnetz [14];
char mobil [14];
char mail [101];
char geburtsdatum [11];
char kategorie [31];
char startnummer [5];
char startzeit [9];
char zeit [9];
char rang [5];
char fahrrad [31];
char sponsor [31];
} adressen;
struct node{
adressen *konto;
struct node *prev;
struct node *next;
};
。但在这种情况下,你不想要一个循环,但最后一行
max-1
但由于无法保证最后一行包含max-id-value,您还可以使用Dim lastrow = Database1DataSet1.Table.Rows(Database1DataSet1.Table.Rows.Count - 1)
Dim maxIdValue = lastrow.Id
:
Linq-To-DataSet
但总的来说,你应该让数据库这样做,否则就是竞争条件。