访问DataGridView中不可见字段数据的问题



大家好,提前感谢大家花时间阅读我的问题。

这是我的场景:

我有一个DataGridView,我从一个有PKId的表中显示一些值。我不想显示Id字段,但仍然能够访问Id的值,以便在我的数据库上执行DELETE语句。

我用指令DataGridView.Columns("Id").Visible = False

隐藏了Id

字段Id字段是DataGridView上的第一个字段,因此当它被选中时,它的索引为0。

如果我试图通过DataGrid.SelectedCells.Item(0).Value得到它的值程序抛出异常。

我在没有使用DataGridView.Columns("Id").Visible = False的情况下测试了相同的代码,它可以完美地工作,所以我假设函数DataGrid.SelectedCells.Item(0).Value不能工作,如果对应于Item(0)的字段不可见。

我需要直接从DataGridView中选择Id,因为它的Id随每行而变化。

对于这个问题的任何不同的方法,我都很感激。

在代码中根本不需要隐藏列或引用网格。首先在设计器的网格中添加您想要的列。设置每个列的DataPropertyName,告诉它绑定到哪个数据源列。

在代码中,使用OleDbDataAdapter填充DataTable,然后通过BindingSource将其绑定到网格。当您想要删除当前记录时,请在BindingSource上调用RemoveCurrent。这会将行标记为Deleted,并将其隐藏在UI中。

一旦你做了所有你想做的更改,调用Update在相同的数据适配器,以保存更改从DataTable回数据库中的批处理。

试试这个

If Not IsNothing(DataGrid.CurrentRow) Then
Dim intId As Integer = DataGrid.CurrentRow.Cells("Id").Value
End If

可以在一行中使用。tag来存储信息,而不是在隐藏的列中。

例如:

DataGridView1.Rows(sID).Tag = Your id.

最新更新