请帮我解决这个问题。我有一个数据网格视图绑定到数据集,当我选择一个项目到datagridview删除时,我得到正确的项目。但是当我将datagridview排序到某个字段时,它会返回一个不同的项目。这是我的代码:
DSet.Tables("sec_company_address").Rows(sec_company_address.CurrentRow.Index).Delete()
编辑:我尝试这一行,但它会出错。
Dim xID As String = sec_role_module.CurrentRow.Cells("nID").Value.ToString
sDataSet.Tables(sec_role_module.Name).Rows.Find(xID).Delete()
答案 0 :(得分:1)
在开始之前,您必须在sec_company_address
中设置主要列,以便DELETE
可用。试试这个:
' change columnName to your column which is the Unique Identifier
dim xID as string = dataGridView1.CurrentRow.Cells("columnName").Value.Tostring
DSet.Tables("sec_company_address").Rows.Find(xID).Delete()
DSet.Tables("sec_company_address").AcceptChanges()
<强>更新强>
怎么样?
For Each xRow As DataRow In sec_role_module.SelectedRows
sDataset.Tables(sec_role_module.Name).Rows.Remove(xRow)
sDataset.AcceptChanges()
Next
答案 1 :(得分:0)
通过更改datagridview的排序,您可以引用数据集中的另一个项目,因为您的数据集仍然与初始加载相同。
你怎么解决这个问题? 您可以在第一列中使用唯一标识符,您可以参考该标识符删除数据集中的行。