Как я могу удалить связь набора данных? - PullRequest
0 голосов
/ 31 марта 2011

Как я могу это сделать?Я пробовал DataSet.Relations.Clear (), но это не работает.есть идеи?

Ответы [ 2 ]

0 голосов
/ 12 апреля 2017

Это сработало для меня:

for (int i = DS.Relations.Count - 1; i >= 0; i--)
  DS.Relations.Remove(DS.Relations[i]);

Затем добавьте этот фрагмент, чтобы удалить все ограничения внешнего ключа, которые могут помешать удалению таблиц из набора данных:

for (int i = DS.Tables.Count - 1; i >= 0; i--)
{
  var table = DS.Tables[i];
  for (int constraint = table.Constraints.Count - 1; constraint >= 0; constraint--)
    if (table.Constraints.CanRemove(table.Constraints[constraint]))
      table.Constraints.Remove(table.Constraints[constraint]);
}
0 голосов
/ 31 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...