2014-01-09 34 views
1

我有一個數據適配器,包含數據集中的4個表。當我將新記錄更新到表中時,它出現在SQL數據庫中,並且關聯的datagridivew已被重新加載到表中,但是當我嘗試使用以下代碼讀取新記錄時,它無法找到記錄。無法從表中讀取新記錄

Dim row As DataRow = dsSrvAV.Tables("ServiceAvailability").Select("ID = " & intRecordID).FirstOrDefault() 

相同的代碼用於讀取應用程序打開時數據庫中的其他記錄,它只是它無法讀取的新記錄。

這是寫入新的記錄

Dim newAvailability As DataRow = dsSrvAV.Tables("ServiceAvailability").NewRow() 

'Add some data to it 
newAvailability("Service_ID") = cboServices.SelectedValue 
newAvailability("Date") = Format(dtpDate.Value.ToString, "Short Date") 
newAvailability("Downtime") = nudDowntime.Value 
newAvailability("Notes") = txtNotes.Text 
newAvailability("MajorIncident") = txtMajorIncident.Text 
newAvailability("ActionsTaken") = txtActionsTaken.Text 
newAvailability("Type") = cboType.SelectedValue 
newAvailability("Root_Cause") = txtRootCause.Text 

'Add it to the table 
dsSrvAV.Tables("ServiceAvailability").Rows.Add(newAvailability) 

'Update the adapter 
daSrvAv.Update(dsSrvAV, "ServiceAvailability") 
dsSrvAV.Tables("ServiceAvailability").AcceptChanges() 

任何人都可以提供任何想法,爲什麼這不會允許新的記錄回讀的代碼。

感謝 豐富

+0

你從哪裏得到intRecordId?你確定它的正確價值嗎? ID列是int嗎? – robnick

+0

intRecord從datagridview中從數據庫中的pkey值中獲取。它適用於數據庫中存在的所有其他記錄,只是新添加了它找不到的記錄。 –

+0

'dsSrvAV'在兩個地方都明確指向相同的'DataSet'對象? –

回答

0

每評論 - 這解決了這個問題。

關閉您的dsSrvAv數據集,然後重新打開它,然後執行選擇。

關鍵績效:你是否每秒增加1,000,000條記錄。如果它是1,000,000,那麼是有開銷。如果它的每秒1沒有任何明顯的開銷。