使用datagridview的currentrow属性获取数据集的行号

时间:2012-01-11 08:18:30

标签: vb.net ado.net datagridview dataset

请帮我解决这个问题。我有一个数据网格视图绑定到数据集,当我选择一个项目到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()

enter image description here

2 个答案:

答案 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的排序,您可以引用数据集中的另一个项目,因为您的数据集仍然与初始加载相同。

你怎么解决这个问题? 您可以在第一列中使用唯一标识符,您可以参考该标识符删除数据集中的行。