数据集中已删除的项目未在数据库中删除

时间:2011-10-20 10:12:04

标签: c# dataset

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 个答案:

答案 0 :(得分:1)

请改为尝试:

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

我认为这实际上会标记要删除的行。

答案 1 :(得分:0)

原来我需要在数据库适配器中添加DeleteCommand。 DeleteCommand没有自动生成,当使用.RemoveListingRow(item)时没有发出错误消息,它只是不起作用。

在数据源中选择“使用Designer编辑DataSet”tableAdaper生成命令的属性,例如

删除列表 WHERE(stock = @ p1)