2014-02-17 74 views
0

我試圖進入一個記錄與新表,下面的消息顯示:空行做插入

「輸入字符串的不正確的格式。」

這裏是我的代碼:

Dim max_ As String = "select MAX(referance_number) from table" 
Dim obj_ As New DATAAccess 
Dim ds_ As New Data.DataSet 
obj_.populate_dataset_Access_accdb_test(ds_, max_) 
Dim ref As Integer = Convert.ToInt32(ds_.Tables(0).Rows(0).Item(0).ToString) 
ref = ref + 1 

表列INT有沒有空。

回答

0

如果表是空的,則MAX將返回NULL。這意味着您的DataRow將包含DBNull.Value,其ToString方法返回String.Empty,顯然不能將其轉換爲Integer。首先使用DataRow自己的IsNull方法測試NULL。

當然,你總是可以做許多成千上萬的開發在世界各地做,讓數據庫生成的順序ID爲您服務。

+1

我建議使用jmcihinney建議的自動編號字段。如果您有多個用戶創建記錄,則可能有兩個或更多用戶嘗試使用相同ID創建記錄的時間。示例User1獲取下一個ID等待一段時間,同時User2發出最大號碼的請求並獲取相同的ID,因爲User1尚未創建其記錄... User1創建其記錄,然後User2出現錯誤。 – Mych