удаленный элемент в наборе данных не удален в базе данных - PullRequest
0 голосов
/ 20 октября 2011

Hello everone

У меня есть функция

 public void RemoveStock(string tickerName) {

    int key = this.getKeyFromtickerName(tickerName);
    foreach (var item in listingDataTable.Where(
        x => x.stock == key).ToList()) {
           listingDataTable.RemoveListingRow(item);
    }
    listingTa.Update(listingDataTable);
}

Определения:

listingDataTable = new stockDataSet.ListingDataTable();
listingTa = new stockDataSetTableAdapters.ListingTableAdapter();

Тип базы данных: SQL Server Compact Edition

Функция удаляет строки из набора данных, но не из базы данных.Все дополнения в базе данных сохраняются, но я не могу удалить из базы данных.

Нужно ли делать что-то еще, чтобы база данных приняла мои изменения?

С наилучшими пожеланиями
Gorgen

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Попробуйте вместо этого:

foreach (var item in listingDataTable.Where(
    x => x.stock == key).ToList()) {
       item.Delete();
}

Я думаю, что это на самом деле пометит строку для удаления.

0 голосов
/ 20 октября 2011

Оказалось, что мне нужно добавить DeleteCommand в моем адаптере базы данных. Команда DeleteCommand не была сгенерирована автоматически, и при использовании .RemoveListingRow(item) сообщение об ошибке не выводилось, оно просто не работало.

В источниках данных выберите «Редактировать набор данных с помощью конструктора». Свойства команды tableAdaper generate, например,

УДАЛИТЬ ИЗ СПИСКА ГДЕ (сток = @ p1)

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