2014-01-09 2 views
1

У меня есть адаптер данных с 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() 

Можно ли предлагать какие-либо мысли о том, почему это не позволит новых записей для последующего чтения.

Благодаря Rich

+0

Откуда вы получаете intRecordId? Вы уверены, что это правильное значение? Является ли столбец идентификатора int? – robnick

+0

intRecord берется из datagridview, который получает его из значения pkey в базе данных. Он работает нормально для всех других записей, которые существуют в базе данных, это просто новые, которые он не может найти. –

+0

И 'dsSrvAV' определенно указывает на тот же объект DataSet в обоих местах? –

ответ

0

Per комментарии - это решить проблему.

Закройте набор данных dsSrvAv, а затем повторно откройте его, а затем выполните выбор.

Оценка производительности: вы добавляете 1 запись в секунду от 1,000,000. Если его 1,000,000, то да, есть накладные расходы. Если его 1 в секунду нет никаких накладных расходов.

Смежные вопросы