| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 373 人关注过本帖
标题: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
快速回复:C#中 一开始点击“上一行”就溢出,求解?!
数据加载中...
 
   



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

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