0

为什么这段代码不起作用?

        (this.namesBindingSource.Current as DataRowView).Delete();         
        this.namesTableAdapter.Update(database1DataSet1);

错误:当传递带有已删除行的 DataRow 集合时,更新需要有效的 DeleteCommand。

数据库是添加到项目中的基于服务的数据库,只有一个表显示在 dataGridView 中,并且此代码链接到按钮。您将单击行进行删除,然后按下按钮并得到错误....

怎么了?我快疯了......

4

2 回答 2

2

错误消息是不言自明的。你需要一个有效DeleteCommand的 for namesTableAdapter。否则,它不知道您要删除“已删除”的行。对于Updateor也是如此Insert-Commands

Delete()只是改变RowState. 如果您使用 a DataAdapter(or TableAdapter) 它需要知道如果状态是Deletedor时该怎么做Modified

如何:创建 TableAdapter 查询

于 2013-01-10T10:19:53.460 回答
0

使用CommandBuilder但请记住,您需要使用其中包含关键列的表。

于 2013-01-10T10:35:49.703 回答