http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4912|回复: 4

[其他] datagridview动态增加列后,引发了“ArgumentException”未被处理的异常.不能找到...

[复制链接]
发表于 2021-12-29 00:44:43 | 显示全部楼层 |阅读模式
问题遇到的现象和发生背景
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);


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2021-12-29 16:39:25 | 显示全部楼层
这说明列名没有生成, 你调试看看是不是列名生成成功,或者是和你写的列名是一样的。
发表于 2021-12-30 10:12:55 | 显示全部楼层
列明和显示的可以不一样
 楼主| 发表于 2022-1-11 00:42:15 | 显示全部楼层
站长苏飞 发表于 2021-12-29 16:39
这说明列名没有生成, 你调试看看是不是列名生成成功,或者是和你写的列名是一样的。

明白了。可能我只是改了列头,然后导致引用出错。谢谢,我先试试
 楼主| 发表于 2022-1-22 09:42:32 | 显示全部楼层
tasknum1.DataPropertyName = dn1.Rows[i][0].ToString();问题解决
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-19 23:28

© 2014-2021

快速回复 返回顶部 返回列表