| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5946 人关注过本帖
标题:索引超出范围。必须为非负值并小于集合大小(超紧急,求救!!!)
只看楼主 加入收藏
hebingbing
Rank: 6Rank: 6
来 自:黄土高坡
等 级:贵宾
威 望:27
帖 子:3417
专家分:371
注 册:2007-10-22
收藏
得分:0 
从代码上看貌似看不出来有什么问题,所以你应该看看你的sql语句,你先这么做:
 if (sdr.Read())
        {
            if (Convert.ToInt32(GridView1.Rows[0]) != -1 && Convert.ToInt32(GridView1.Rows[0]) >= 0)
            {
                ((LinkButton)(GridView1.Rows[0].Cells[1].FindControl("LinkButton1"))).Text = sdr["UF_CARD_TITLE"].ToString();
                ((Label)(GridView1.Rows[0].Cells[2].FindControl("Label2"))).Text = Convert.ToString(sdr["UF_CARD_USERID"]);
                ((Label)(GridView1.Rows[0].Cells[2].FindControl("Label3"))).Text = Convert.ToString(sdr["UF_CARD_ADDTIME"]);
                ((Label)(GridView1.Rows[0].Cells[3].FindControl("Label4"))).Text = Convert.ToString(sdr["UF_RECARD_SORT"]);
                ((Label)(GridView1.Rows[0].Cells[3].FindControl("Label5"))).Text = Convert.ToString(sdr["UF_CARD_VISITQUANTITY"]);
                ((Label)(GridView1.Rows[0].Cells[4].FindControl("Label6"))).Text = Convert.ToString(sdr["UF_RECARD_USERID"]);
                ((Label)(GridView1.Rows[0].Cells[4].FindControl("Label7"))).Text = Convert.ToString(sdr["UF_RECARD_ADDTIME"]);
            }
        }        
将这些内容暂时注释掉
换成:
   if (sdr.Read())
{
response.write(sdr["UF_CARD_TITLE"].ToString())
……
……
}
将这些值都输出看看到底能不能取到值
2008-06-28 15:49
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
异常详细信息: System.IndexOutOfRangeException: UF_CARD_TIELE

源错误:


行 34:         if (sdr.Read())
行 35:         {
行 36:             Response.Write(sdr["UF_CARD_TIELE"].ToString());
行 37:             //((LinkButton)(GridView1.Rows[0].Cells[1].FindControl("LinkButton1"))).Text = sdr["UF_CARD_TITLE"].ToString();
行 38:             //((Label)(GridView1.Rows[0].Cells[2].FindControl("Label2"))).Text = Convert.ToString(sdr["UF_CARD_USERID"]);
 

源文件: e:\admin\bbs_liebiao.aspx.cs    行: 36

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-06-28 15:57
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
怎么取不到值啊

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-06-28 15:58
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
SQL语句在查询分析器中很正常

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-06-28 16:00
hebingbing
Rank: 6Rank: 6
来 自:黄土高坡
等 级:贵宾
威 望:27
帖 子:3417
专家分:371
注 册:2007-10-22
收藏
得分:0 
看看你的数据库是不是空的啊,如果不是空的,那么可能你的where条件下的数据是空的
2008-06-28 16:01
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
有一千多条数据   sql语句在查询分析器中已经查出来了

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-06-28 16:04
hebingbing
Rank: 6Rank: 6
来 自:黄土高坡
等 级:贵宾
威 望:27
帖 子:3417
专家分:371
注 册:2007-10-22
收藏
得分:0 
仔细查看你的sql语句,可能是某个字段拼写出错也说不定啊。完了之后再
   if (sdr.Read())
{
response。write(“有数据”)
}
else
{
response。write(“无数据”)
}
然后改成输出字段值
到没有问题了再改成原来的内容
2008-06-28 16:10
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
数据库中有1000多条数据   在查询分析器中那条数据已经查出来结果了

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-06-28 16:12
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
(10 行受影响)

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-06-28 16:12
hebingbing
Rank: 6Rank: 6
来 自:黄土高坡
等 级:贵宾
威 望:27
帖 子:3417
专家分:371
注 册:2007-10-22
收藏
得分:0 
还是仔细检查一下你的sql语句,注意一些字段的值
改成这样的试试:
  if (sdr.Read())
{
response.write(sdr.getcalue(0).tostring())
……
……
}
其实这些都是一样的,问题的关键应该还是在sql语句中
2008-06-28 16:19
快速回复:索引超出范围。必须为非负值并小于集合大小(超紧急,求救!!!)
数据加载中...
 
   



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

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