2015-10-27 62 views
-1

我試圖增加主鍵,這是一個身份證號碼在這種情況下,手動,而不是使用SQL或OleDBConnection或類似的東西。理想情況下,我試圖做的是當保存一條新記錄時,轉到數據庫中的最後一條記錄,從該記錄中提取ID號碼,再加上一條記錄,然後將該新號碼設置爲新的ID記錄。然而,我無法想象出我的生活。繼承人我有什麼:在數據庫中手動增加ID號VB.net

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

+2

爲什麼不讓數據庫按照它設計的方式來完成?如果你有兩個連接都試圖運行你的代碼會發生什麼? –

+1

你想用'max To max'來做什麼樣的循環? –

+0

數據集不是數據庫。這應該在插入查詢中完成。 (它應該是對於i = 0到max-1) –

回答

2

位置沒有行所有集合基於.NET中零,所以你的循環需要去max-1。但在這種情況下,你不想要一個循環,但最後一行

Dim lastrow = Database1DataSet1.Table.Rows(Database1DataSet1.Table.Rows.Count - 1) 
Dim maxIdValue = lastrow.Id 

但因爲它是不能保證最後一行包含MAX-ID值,你也可以使用Linq-To-DataSet

Dim maxIdValue = Database1DataSet1.Table.AsEnumerable().Max(Function(r) r.Id) 

但是一般而言,您應該讓數據庫執行此操作,否則就是競爭條件。