首页 新闻 会员 周边

一个关于更新dataGridView中的数据问题

0
[已关闭问题] 关闭于 2008-10-31 12:15

 

//更新dataGridView中的数据
public void updateDGV(string[] showinfo)
{
for (int j = 0; j < showinfo.Length; j++)
{
dataGridView.SelectedRows[h].SetValues(showinfo[j]);
}
}

上面一段代码是要将传进来的一个数组中的值,更新到选中的行中。代码中的变量h是前面取到的选中行的索引。下面将异常截图贴出来:

看来是索引有问题,可是这事第一次循环的时候爆出的异常,这时变量j等于0啊。并且数组中肯定是有数据的,截图如下:

高手赐教,如何解决这个问题,谢谢!

问题补充: 发现一个问题补充下,循环里的语句好像是有问题的。 dataGridView.SelectedRows[h].Cells[j].Value = showinfo[j]; 应该是上面这句代码,将选中行的每一个单元格的值都更新一下。但是依然爆出截图中的异常。
握薪尝蛋的主页 握薪尝蛋 | 初学一级 | 园豆:145
提问于:2008-10-29 11:41
< >
分享
所有回答(7)
0

GridView的selectdRows默认是0,你是否有选中?

你要判断selectdRows这个属性为0的情况!

仁面寿星 | 园豆:325 (菜鸟二级) | 2008-10-29 11:47
0

当j>h时dataGridView.SelectedRows[h]自然就越界了,所以要先判断j,h的大小,从而保证循环的时候dataGridView.SelectedRows[h]不会越界。

五千年文明 | 园豆:207 (菜鸟二级) | 2008-10-29 13:16
0

取掉For循环,直接写

dataGridveiw.SelectedRows[h].SetValues(showinfo)

这样试试,应该没错

| 园豆:770 (小虾三级) | 2008-10-29 13:16
0

改为

j<showInfo.Length-1

RicoRui | 园豆:3663 (老鸟四级) | 2008-10-29 15:52
0

SelectedRows是你选中行的集合,看你代码的意思,应该是只选中了1行,那么索引就应该是0,即SelectedRows[0]。

你的h是选中的行在DataGridView中的索引,用到SelectedRows里面当然会报索引超出范围的错误。

麒麟.NET | 园豆:3614 (老鸟四级) | 2008-10-29 16:14
0

怀疑是dataGridView.SelectedRows[h] 有问题,也就是 h 可能取得不太对,你调试时看一下,是不是这里的索引越界了?

应该使用 dataGridView.Rows[h]

或者把h改成取得SelectedRows里的索引(不知道有没有这个方法)

丁学 | 园豆:18730 (专家六级) | 2008-10-30 11:11
0

h 是啥?

水墨.MR.H | 园豆:280 (菜鸟二级) | 2012-05-03 16:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册