无法从表中读取新记录

时间:2014-01-09 13:59:49

标签: sql vb.net

我有一个数据集中有4个表的数据适配器。当我将新记录更新到表时,它出现在SQL数据库中,并且关联的datagridivew已经重新加载了表中的dat,但是当我尝试使用以下代码读取新记录时,它无法找到记录。

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()

任何人都可以提出任何想法,为什么这不会允许回读新记录。

由于 富

1 个答案:

答案 0 :(得分:0)

每条评论 - 这解决了这个问题。

关闭dsSrvAv数据集,然后重新打开它,然后执行选择。

Regardng性能:你是否每秒增加1,000条记录。如果它的1,000,000然后肯定有开销。如果每秒1,则没有任何明显的开销。