为什么这段代码不起作用?
(this.namesBindingSource.Current as DataRowView).Delete();
this.namesTableAdapter.Update(database1DataSet1);
错误: 在传递带有已删除行的DataRow集合时,更新需要有效的DeleteCommand。
数据库是添加到项目的基于服务的数据库,只有一个表在dataGridView中显示,并且此代码链接到button。您将单击要删除的行,然后单击按钮并获取错误....
有什么问题?我疯了......
答案 0 :(得分:2)
错误消息是不言自明的。 DeleteCommand
需要有效namesTableAdapter
。否则,它不知道您删除“已删除”行。 Update
或Insert-Commands
也是如此。
Delete()
只需更改RowState
。如果您使用DataAdapter
(或TableAdapter
),则需要知道如果状态为Deleted
或Modified
该怎么做。
答案 1 :(得分:0)
使用CommandBuilder
但请记住,您需要使用包含密钥列的表。