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

如何在DataGridView中查找正负数值列的最大值并展示到文本框

问题原因及修改方案

你的代码存在四个核心问题,是导致报错和结果不准的主要原因:

  • 初始最大值设为0,若所有数据均为负数会得到错误结果
  • 未处理单元格空值、无效值的场景,直接调用Parse和ToString会触发格式转换或空引用报错
  • 重复对同一单元格值做两次double转换,效率冗余
  • 若你开启了DataGridView的「允许用户添加行」属性,最后一行默认是空行,也会触发转换报错

修改后的可运行代码如下:

// 初始值设为double的最小值,兼容全为负数的场景
double max = double.MinValue;
// 注意:如果你不是刻意要跳过第一行数据,循环起始保持i=0即可(DataGridView.Rows不包含表头行)
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    var cellValue = dataGridView1.Rows[i].Cells[1].Value;
    // 跳过空单元格、空行
    if (cellValue == null || cellValue == DBNull.Value)
    {
        continue;
    }
    // 安全转换,避免非数字格式报错
    if (double.TryParse(cellValue.ToString(), out double currentValue))
    {
        if (currentValue > max)
        {
            max = currentValue;
        }
    }
}
// 兜底判断:如果没有匹配到有效数值,给出提示
if (max == double.MinValue)
{
    textBoxMax.Text = "无有效数值";
}
else
{
    textBoxMax.Text = max.ToString();
}

如果确定你的目标列不是第二列(单元格索引从0开始计数,Cells[1]对应第二列),自行修改Cells[1]的索引即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:15:03