从DataSet中删除Row后出现异常

时间:2014-05-26 10:13:05

标签: c# datagridview strongly-typed-dataset

我的Basci设置: DataSet有3个DataTables,没有关系; 2 DataBindings用于Version-table,用于Script-table 2个数据绑定作为数据源的Datagridviews

在按钮单击事件上,我获得Version-datagridview中的第一个选定行,获取DataboundItem并将其转换为" VersionRow"。然后获取数据集中的行并使用Delete(); -methode。

这一切都运行完全没有异常,在Debug中你会看到数据集中的versionrow状态也发生了变化。但随后它遭遇了DeletedRowInaccessibleException。

ClickEvent with Deleting:

private void VersionDel_Click(object sender, EventArgs e)
    {
        if (VersionDataGird.SelectedRows.Count > 0)
        {
            var x = (MainDB.VersionsRow)VersionDataGird.SelectedRows[0].DataBoundItem;
            mainDB.Versions.FindByID(x.ID).Delete(); 
        }

    }//after here it jumps in a generated function to get id from dataset and fails

当我在DataSet中删除它时,我预计该行只会在DataGridView中消失。你知道我的错误在哪里吗?

1 个答案:

答案 0 :(得分:0)

我认为您正在获取Selected Row并从数据库中删除它。但您没有更新网格视图。

删除行后尝试删除数据网格的数据源,删除行后再次将数据源添加到此网格中。

您也可以使用适配器代替此。这是我在互联网上找到的tutorial的链接。

希望它有所帮助!