Удалить запись из таблицы данных, когда запись исчезает из зеркальной таблицы данных - PullRequest
1 голос
/ 20 сентября 2010

У меня есть две зеркальные таблицы данных (одинаковая структура с двумя первичными ключами):

  • DataTable_A ---> привязано к DataGridView
  • DataTable_B ---> заполнено из базы данных

Поскольку DataTable_B заполняется запросом в базу данных каждые 2 секунды, мне нужно отразить DataTable_A как DataTable_B, избегая непосредственного заполнения DataTable_A. Когда запись исчезает из DataTable_B, мне нужно удалить запись также из DataTable_A. Каков наилучший способ сделать это?

Сейчас я делаю цикл for для каждой строки в DataTable_B, и если эта строка не существует в DataTable_A, я ее удаляю.

Есть ли лучший способ сделать это?

1 Ответ

2 голосов
/ 20 сентября 2010

Лучшим способом может быть совсем не иметь TableA, а использовать DataView на TableB.Это решило бы все проблемы сразу.Не могли бы вы уточнить, зачем вам нужна копия?

Но в противном случае вы захотите обработать события RowChanged и TableNewRow RowDeleted для TableB


Более общая идеяПосле просмотра ваших комментариев: Если есть возможность добавить столбец Timestamp к таблице в базе данных, вы можете выполнить гораздо более эффективный запрос.И метод DataTable.Merge сделает все остальное.

...