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

DataGridView行值传递至TextEdit1失败,请求代码调试帮助

排查DataGridView双击传值到TextEdit的问题

我来帮你梳理这个问题的排查方向和修复方案,先看几个关键的踩坑点:

1. 控件名称不匹配(最容易忽略的细节)

你填充DataGridView用的是GVhkCL.ItemsSource = dt;,但双击事件里写的是DataGridViewEmployee.GetSelectedRows()——这两个控件名称明显不一致!如果这是同一个DataGridView的话,肯定会导致找不到选中行,直接把事件里的DataGridViewEmployee改成GVhkCL就行。

2. SQL查询缺少目标列(核心错误)

你的双击事件里试图获取"ID"列的值,但填充DataGridView的SQL查询里根本没选ID字段!看这段SQL:

SELECT Room_No as 'Room No',Room_Status as 'Room Status', S_Time as 'Start Time',E_Time as 'End Time',c_date as 'Create Date'from HK_Chk

完全没有ID列,GetRowCellValue自然拿不到值,甚至会抛出异常。必须在SELECT语句里加上ID字段,比如:

SELECT ID, Room_No as 'Room No',Room_Status as 'Room Status', S_Time as 'Start Time',E_Time as 'End Time',c_date as 'Create Date'from HK_Chk

3. 未判断选中行是否为空

如果用户双击时没有选中任何行,selectedRowHandles会是空数组,直接取selectedRowHandles[0]会触发索引越界异常。必须先判断数组长度。

修正后的完整代码示例

填充DataGridView的方法(优化连接管理+补充ID列)

private void Bind_GVhkCL(string text) { 
    string query = "SELECT ID, Room_No as 'Room No',Room_Status as 'Room Status', S_Time as 'Start Time',E_Time as 'End Time',c_date as 'Create Date' from HK_Chk " + text; 
    // 使用using自动释放连接,避免手动关闭遗漏
    using(var sqlConnection = new SqlConnection(你的连接字符串)) {
        sqlConnection.Open(); 
        SqlDataAdapter da = new SqlDataAdapter(query, sqlConnection); 
        DataTable dt = new DataTable(); 
        da.Fill(dt); 
        GVhkCL.ItemsSource = dt; 
    }
}

双击事件(修正控件名+空判断+安全取值)

private void GVhkCL_DoubleTap(object sender, DataGridGestureEventArgs e) { 
    int[] selectedRowHandles = GVhkCL.GetSelectedRows(); 
    // 先检查是否有选中行
    if(selectedRowHandles.Length == 0) {
        MessageBox.Show("请先选择一行数据");
        return;
    }
    // 安全获取单元格值,避免null报错
    object idValue = GVhkCL.GetRowCellValue(selectedRowHandles[0], "ID");
    TextEdit1.Text = idValue != null ? idValue.ToString() : string.Empty;
}

额外排查步骤

  • 确认事件绑定:在设计器里选中GVhkCL,打开事件面板,确保DoubleTap事件已经绑定到GVhkCL_DoubleTap方法,不然代码根本不会执行。
  • 调试验证:给双击事件加个断点,运行后双击DataGridView,查看selectedRowHandles是否有值,idValue是否能正常获取,快速定位问题。

内容的提问来源于stack exchange,提问作者Nadeem Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:22:47