标题:C#中 一开始点击“上一行”就溢出,求解?!
只看楼主
ji2210
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-10-25
结帖率:100%
已结贴  问题点数:20 回复次数:5 
C#中 一开始点击“上一行”就溢出,求解?!
左图是我的代码
中图是我的表
右图是我一开始运行我的表时候 点击“last”就出错了,但是如果我先按一下“next”再按一下“last”是没有问题的。这是为什么呢?
帮一下忙,我改怎么修改我的代码呢

如下是左图代码
i--;
if ((i < db.Rows.Count)==false )
{ i++; MessageBox.Show("最后一条"); }

账号栏.Text = db.Rows[i][0].ToString();

密码栏.Text = db.Rows[i][1].ToString();
搜索更多相关主题的帖子: false 账号 
2012-10-25 13:21
babylco0
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:60
注 册:2012-10-18
得分:7 
首先看下i有没有赋初始值
其次看下db.Rows.Count的值是多少
2012-10-25 16:30
smart0721
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:106
专家分:468
注 册:2012-2-10
得分:7 
估计你刚开始i的初值为0,你一开始运行后点击一开始运行后i--,i就变成-1,i < db.Rows.Count为true,后面i++就不执行,那么获取db[-1]行的数据,肯定出错了!这样按逻辑分析一下就看出来的!
其实你可以这样写
程序代码:
if(i>0)
{
i--
}
if(i==0)
{

 MessageBox.Show("最后一条");
this.last.enable=false;//失效Last按钮
}
if ((i < db.Rows.Count)==false )
{ i++; MessageBox.Show("最后一条"); }
你这样写完全没意义,if((i < db.Rows.Count)==false )相当于if(i > db.Rows.Count) last操作使i--,你不会越减越大吧?
2012-10-26 00:08
ji2210
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-10-25
得分:0 
回复 2楼 babylco0
这不是关键!是个不定值!
2012-10-26 09:47
ji2210
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-10-25
得分:0 
回复 3楼 smart0721
看到你答案蛮好的!非常感谢你的引导,可惜你这段代码在C#中运行不了!!!
2012-10-26 09:49
tyycome
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2013-1-6
得分:0 
db.rows[i][0].tostring();    i等于-1的时候   不溢出才怪   你见过谁这样写代码能获取值得 db.rows[-1][0].tostring(); ?这里rows[i]必须大于0或者等于0

代接小程序   QQ:418891000
2013-01-06 16:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-384032-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.143793 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved