You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中获取未显示ID列的DataGridView选中行的ID

如何获取DataGridView选中行对应的数据库ID(未显示ID列时)

方法一:隐藏ID列(推荐方案)

这是最直接高效的方式,查询数据时带上ID字段但不显示:

  1. 查询数据时包含ID字段
    编写SQL查询语句时,把ID列和其他需要显示的字段一起取出,比如:
    SELECT ID, 字段1, 字段2, ... FROM 你的数据表名
    
  2. 绑定数据后隐藏ID列
    将数据绑定到DataGridView后,把ID列设置为不可见:
    // 假设你的DataGridView名为dataGridView1
    dataGridView1.Columns["ID"].Visible = false;
    
  3. 获取选中行的ID
    当用户选中某行时,直接读取该行隐藏的ID列值:
    if (dataGridView1.SelectedRows.Count > 0)
    {
        // 根据数据库中ID的实际类型调整转换方式,比如string类型就用ToString()
        int targetId = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells["ID"].Value);
        // 这里可以使用获取到的ID进行后续操作
    }
    

方法二:通过唯一字段二次查询(不推荐)

如果因特殊原因无法在查询时带上ID列,可以通过行中唯一的显示字段,再次查询数据库获取ID:

  1. 获取选中行的唯一字段值,比如某列是唯一的名称:
    if (dataGridView1.SelectedRows.Count > 0)
    {
        string uniqueValue = dataGridView1.SelectedRows[0].Cells["唯一字段列名"].Value.ToString();
        // 执行SQL查询获取ID
        string sql = "SELECT ID FROM 你的数据表名 WHERE 唯一字段列名 = @Value";
        // 使用参数化查询执行语句,避免SQL注入,获取返回的ID值
    }
    
    注意:这种方法需要额外的数据库请求,且依赖字段的唯一性,若字段不唯一会导致结果错误,因此优先推荐方法一。

内容的提问来源于stack exchange,提问作者Sheikh Muhammad Nawaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:01:10