首页 > 解决方案 > 在 DataGridView 中访问不可见字段数据时出现问题

问题描述

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

这是我的场景:

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

Id用指令隐藏了那个字段:DataGridView.Columns("Id").Visible = False

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

如果我尝试通过DataGrid.SelectedCells.Item(0).Value 程序获取其值,则会引发异常。

我已经在没有使用的情况下测试了相同的代码DataGridView.Columns("Id").Visible = False并且它工作得很好,所以我假设如果对应的字段不可见,该函数DataGrid.SelectedCells.Item(0).Value将无法工作。Item(0)

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

对此问题的任何不同方法将不胜感激。

标签: vb.netdatagridview

解决方案


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

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

完成所有要进行的更改后,调用Update同一个数据适配器以将更改从DataTable后端批量保存到数据库中。


推荐阅读