mirzamujib Ответов: 3

Я не могу обновить свой bindingnavigator


Привет,
Уважаемые пользователи, когда я пытаюсь удалить и обновить свой bindingnavigator, он показывает мне следующую ошибку.
Обновление требует действительной команды DeleteCommand при передаче коллекции DataRow с удаленными строками.
Я не знаю что идет не так Ниже приведен код для обновления моего навигатора привязки
Me.Validate()
Me.TableAdapterManager.UpdateAll(Me.myDataSet)
Me.myBindingSource.EndEdit()

Плз, мне нужна твоя помощь...

3 Ответов

Рейтинг:
2

Anoop Ananthan

Вы не упомянули свою команду удаления. В свойствах объекта адаптера установите флажок удалить поле команды.
Если для этой таблицы нет первичного ключа, то вы не можете удалить или обновить ее.


Рейтинг:
2

Andrew Alix

Попробуйте положить свою линию метода endedit, прежде чем делать обновление.

Если это не сработает, вы можете попробовать старый метод. Я никогда не видел, чтобы это провалилось. Я использую его после UpdateAll(Me.myDataSet), чтобы проверить, действительно ли он обновился.
Это лишнее, и должно быть ненужным, но это работает.
Просто измените имена наборов данных и адаптеров таблиц. Возможно, вы даже захотите попробовать их поймать

If yourDataSet.HasChanges then
  'Don't forget the '()' since DataRow is an array
  dim drModified() as DataRow = yourDataSet.Table.Select("", "", _ 
      DatViewRowState.ModifiedCurrent)
  If drModified.Count > 0 then
     yourTableAdapter.Update(drModified)     'Not TableAdapterManager
  End If

  Dim drDeleted() As DataRow = yourDataSet.Table.Select("", "", _
      DataViewRowState.Deleted)
  If drDeleted.Count > 0 Then
     Me.yourTableAdapter.Update(drDeleted)
  End IF

  Dim drAdded() As DataRow = yourDataSet.Table.Select("", "", _
      DataViewRowState.Added)
  If drAdded.Count > 0 Then
      yourTableAdapter.Update(drAdded)
  End If
End If

'You can also combine the above into one line as below.
Dim drModified() As DataRow = yourDataSet.Table.Select("", "", _
     DataViewRowState.ModifiedCurrent Or DataViewRowState.Added)

'I would keep the Deleted line separate so you can confirm all deletes and cancel if you want.


Richard Deeming

Этот вопрос был задан и на него был дан ответ ШЕСТЬ ЛЕТ НАЗАД.

И ваше решение не решает проблему, описанную в вопросе.

Рейтинг:
1

Nikil S

Попробуйте проверить свойства команд TableAdapterManager update &delete, чтобы убедиться, что они действительны.

Если затронутая таблица не имеет первичного ключа, это также может вызвать проблему такого типа.

Ссылка[^]