索引超出了数组界限,求解!

wangmeng9396 2012-04-04 10:52:40
result += "<empclass>" + (sdr.IsDBNull(30) ? "" : sdr.GetString(30)) + "</empclass>";
result += "<turn>" + (sdr.IsDBNull(31) ? "" : sdr.GetString(31)) + "</turn>";
result += "<empturn>" + (sdr.IsDBNull(32) ? "" : sdr.GetString(32)) + "</empturn>";

//密度
result += "<oildensity>" + GetOilType((GetOilDesc((sdr.IsDBNull(2) ? "" : sdr.GetString(2)))))+ "</oildensity>";

//升数
result += "<oiltype>" + (GetOilDesc((sdr.IsDBNull(2) ? "" : sdr.GetInt32(2).ToString()))) + "</oiltype>";


代码如上,出现 密度取值 没问题,但是到油品这里就报错,因为密度取值的时候,还引用了下面的升数了,但是为什么到升数这里会报错呢?索引超出了数组界限?? 最上面的三行代码 是从索引时0往下面取值的。
...全文
222 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiangong789 2012-04-06
  • 打赏
  • 举报
回复
如果你对数组大小未定义会出现预留的物理空间不够连续存储数组内容从而报出越界的错误。。建议你把数组大小设置一下。
未来梦huahua 2012-04-06
  • 打赏
  • 举报
回复
这个问题是你的数组不够如你设了宽为20个的数组,而你又标SRING[21]就会出现这种错误
蔡袅 2012-04-04
  • 打赏
  • 举报
回复
断点看sdr到底有多少列
传递正能量 2012-04-04
  • 打赏
  • 举报
回复
再次推荐 断点跟踪,添加 监视
wangmeng9396 2012-04-04
  • 打赏
  • 举报
回复
(sdr.IsDBNull(2) ? "" : sdr.GetString(2))

这个代码 在上面都可以取到值 但是我只是在我一个方法里面吧这个当参数传进去就报错了。
paopaozhu8899 2012-04-04
  • 打赏
  • 举报
回复
跟踪吧。另外建议拼字符串的时候,把那些方法的返回值都先赋值给局部变量吧,花不了几行代码和时间,
起码调试起来好过点。阅读起来也清晰点
wangmeng9396 2012-04-04
  • 打赏
  • 举报
回复
跟踪了。。。取升数就报索引超界
EnForGrass 2012-04-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
result += "<empclass>" + (sdr.IsDBNull(30) ? "" : sdr.GetString(30)) + "</empclass>";
result += "<turn>" + (sdr.IsDBNull(31) ? "" : sdr.GetString(31)) + "</turn>";
result += "<empturn>" + (sdr.IsD……
[/Quote]
自己调试啊,sdr.GetInt32(2)这个下标是否越界?就一个语句
传递正能量 2012-04-04
  • 打赏
  • 举报
回复
断点跟踪
wangmeng9396 2012-04-04
  • 打赏
  • 举报
回复
木有人啊....
wangmeng9396 2012-04-04
  • 打赏
  • 举报
回复
在线等,顺便吐槽下 清明节 还加班!!!

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧