返回信息流第一个图是问题图,第二个图是我定义的DataGrid,为什么会有错呢,若我上传两条信息的excel,此时dgv2.Rows.Count=3,减一就是2了那么若p=0,则(String)dgv2.Rows[p].Cells["studentcheckin"].Value为我的第一条信息的那个ID属性,为什么会出现索引超出范围。必须为非负值并小于集合大小呢?
这是一条镜像帖。来源:北邮人论坛 / dot-net / #3956同步于 2012/11/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
索引超出范围。必须为非负值并小于集合大小。
wzl2011
2012/11/1镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
“Row.Cells[]数组下标应该是数字啊...咋能写字符串呢...你要想取指定字符串的值的话应该是要遍历的吧...没看智能感知不知道还有没有直接的方法...你再仔细看看~”
----------------------------------------------------------------
二了...智能感知确实有Cells[""]重载~应该是LS说的p的值越界了~单步跟一下执行过程~
我刚才也想到这个了,但是经考证,Cells的item属性确实有个参数是string的重载:
http://msdn.microsoft.com/zh-cn/library/vstudio/0ee9kshd.aspx
而且果没有这个方法的话,应该在编译的时候就出错的=v=
【 在 tonyjansan 的大作中提到: 】
: Row.Cells[]数组下标应该是数字啊...咋能写字符串呢...你要想取指定字符串的值的话应该是要遍历的吧...没看智能感知不知道还有没有直接的方法...你再仔细看看~
嗯~刚看了下智能感知~确实有Cells[""]重载~果然不动手光拍脑袋是要犯错误的~应该是Rows下标p的值越界了~也有可能是Cells[""]里边的名称不存在,检查下是否有拼写错误或者那个元素就没Add~
【 在 Kazuki 的大作中提到: 】
: 我刚才也想到这个了,但是经考证,Cells的item属性确实有个参数是string的重载:
: http://msdn.microsoft.com/zh-cn/library/vstudio/0ee9kshd.aspx
: 而且果没有这个方法的话,应该在编译的时候就出错的=v=
嗯,我也想到了有可能字符串名称不存在的可能,然后发现。。。如果名称不存在的话,应该扔ArgumentException,这个重载方法不会扔ArgumentOutOfRangeException。。。_(:3」∠)_
【 在 tonyjansan 的大作中提到: 】
: 嗯~刚看了下智能感知~确实有Cells[""]重载~果然不动手光拍脑袋是要犯错误的~应该是Rows下标p的值越界了~也有可能是Cells[""]里边的名称不存在,检查下是否有拼写错误或者那个元素就没Add~
【 在 Kazuki 的大作中提到: 】
: 嗯,我也想到了有可能字符串名称不存在的可能,然后发现。。。如果名称不存在的话,应该扔ArgumentException,这个重载方法不会扔ArgumentOutOfRangeException。。。_(:3」∠)_
难道是因为我在上传excel表格在DataGrideView中的没有加空字符串所以错了,如图,我有五项,原来代码是this.dgv.Rows.Add(new Object[] { count, number, name, ""});改为了
this.dgv.Rows.Add(new Object[] { count, number, name, "","" });
【 在 roseking 的大作中提到: 】
: 呵呵。来晚了。问题解决啦。我最近也在搞NPOI,我感觉在界面上内嵌XLS的话用WEBBROWSER比较好,说的不对楼主见谅。呵呵
ls说的NPIO第一次听见嗯,长见识了,不要说见谅,我还是菜鸟级的,仍然谢谢你的意见。