fsnhlsc 2021-12-27 13:44 采纳率: 66.7%
浏览 33

datagridview动态增加列后,引发了“ArgumentException”未被处理的异常.不能找到名为"列名"的列.异常,如何解决?(语言-c#)

问题遇到的现象和发生背景

winform上的datagridview由数据库查询返回结果动态生成,增加列后,datagridview.rows[rowi].cells["列名"].value 的操作就会触发:“ArgumentException”未被处理的异常.不能找到名为"列名"的列.”异常。但如果用 datagridview.rows[rowi].cells[j].value 则不会报错。

问题相关代码,请勿粘贴截图

生成的表格,第114列列名是“六号螺栓数量”,第115列列名是“六号螺栓总额”;pautbasefee是从数据库参数表中查询出来的“六号螺栓单价”。
Gridhtwtxm.Rows[rowi].Cells[“六号螺栓总额”].Value = Math.Round(pautbasefee * Convert.ToDouble(Gridhtwtxm.Rows[rowi].Cells[“六号螺栓数量”].Value) * pautcoef, 2);

运行结果及报错内容

“ArgumentException”未被处理的异常.不能找到名为"列名"的列.”

我的解答思路和尝试过的方法

1、用execl表格导入生成的datagridview表格,datagridview.rows[rowi].cells["列名"].value,可以正常使用。
2、修改为:Gridhtwtxm.Rows[rowi].Cells[114].Value = Math.Round(pautbasefee * Convert.ToDouble(Gridhtwtxm.Rows[rowi].Cells[113].Value) * pautcoef, 2);结果也正常。

我想要达到的结果

用数据库查询结果动态生成datagridview表格后,可以用列名操作表格中的数据,这样就在同一个winform生成不同的表格,不用受限于固定表格。
Gridhtwtxm.Rows[rowi].Cells[“六号螺栓总额”].Value = Math.Round(pautbasefee * Convert.ToDouble(Gridhtwtxm.Rows[rowi].Cells[“六号螺栓数量”].Value) * pautcoef, 2);

  • 写回答

3条回答 默认 最新

  • fsnhlsc 2021-12-27 13:46
    关注

    问题遇到的现象和发生背景
    winform上的datagridview由数据库查询返回结果动态生成,增加列后,datagridview.rows[rowi].cells["列名"].value 的操作就会触发:“ArgumentException”未被处理的异常.不能找到名为"列名"的列.”异常。但如果用 datagridview.rows[rowi].cells[j].value 则不会报错。

    问题相关代码,请勿粘贴截图
    生成的表格,第114列列名是“六号螺栓数量”,第115列列名是“六号螺栓总额”;pautbasefee是从数据库参数表中查询出来的“六号螺栓单价”。
    Gridhtwtxm.Rows[rowi].Cells[“六号螺栓总额”].Value = Math.Round(pautbasefee * Convert.ToDouble(Gridhtwtxm.Rows[rowi].Cells[“六号螺栓数量”].Value) * pautcoef, 2);

    运行结果及报错内容
    “ArgumentException”未被处理的异常.不能找到名为"六号螺栓总额"的列.”

    我的解答思路和尝试过的方法
    1、用execl表格导入生成的datagridview表格,datagridview.rows[rowi].cells["六号螺栓数量"].value,datagridview.rows[rowi].cells["六号螺栓总额"].value可以正常使用。
    2、修改为:Gridhtwtxm.Rows[rowi].Cells[114].Value = Math.Round(pautbasefee * Convert.ToDouble(Gridhtwtxm.Rows[rowi].Cells[113].Value) * pautcoef, 2);结果也正常。

    我想要达到的结果
    用数据库查询结果动态生成datagridview表格后,可以用列名操作表格中的数据,这样就在同一个winform生成不同的表格,不用受限于固定表格。
    Gridhtwtxm.Rows[rowi].Cells[“六号螺栓总额”].Value = Math.Round(pautbasefee * Convert.ToDouble(Gridhtwtxm.Rows[rowi].Cells[“六号螺栓数量”].Value) * pautcoef, 2);

    评论

报告相同问题?

问题事件

  • 创建了问题 12月27日

悬赏问题

  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数