IndexOutOfRangeException这个异常

枫叶丿飘 2010-09-16 01:27:32
/// <summary>
/// 得到该节点下的最大值Id
/// </summary>
/// <param name="linkid"></param>
/// <returns></returns>
public Test GetMaxId(int linkid)
{
try
{
String sql = "select max(Id) from test3 where linkid=@linkid" ;
SqlDataReader sdr = DBHelper.GetReader(sql,new SqlParameter("@linkid",linkid));
if (sdr.Read())
{
Test test = new Test();

test.Id = Convert.ToInt32(sdr["Id"].ToString());
test.Name = (string)sdr["name"];
test.LinkId = (int)sdr["LinkId"];
test.Classid = (int)sdr["ClassId"];
sdr.Close();
return test;
}
else
{
sdr.Close();
return null;
}
}
catch (Exception e)
{
throw e;
}

}


直接出异常 请高手指点
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoojo 2010-09-16
  • 打赏
  • 举报
回复
数组越界了,看看索引下标对不对
qqrto 2010-09-16
  • 打赏
  • 举报
回复
支持2楼,楼主你的sql语句中缺少了那些下面要用到的字段,把它们都补上吧
wjhx 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 net_lover 的回复:]
你就
select max(Id)
出一个字段,怎么能读取到

test.Id = Convert.ToInt32(sdr["Id"].ToString());
test.Name = (string)sdr["name"];
test.LinkId = (int)sdr["LinkId"];
test.Classid = (int)sdr["ClassId"];
……
[/Quote]
顶一下
孟子E章 2010-09-16
  • 打赏
  • 举报
回复
String sql = "select max(Id) from test3 where linkid=@linkid" ;
SqlDataReader sdr = DBHelper.GetReader(sql,new SqlParameter("@linkid",linkid));
if (sdr.Read())
{
int maxID = 0;
if(sdr[0]!=DBNull.Value)
{
maxID = ConvertToInt32(sdr[0].ToString());

}

sdr.Close();
sql = "select * from test3 where Id=" + maxID ;
sdr = DBHelper.GetReader(sql,new SqlParameter("@linkid",linkid));
if (sdr.Read())
{
Test test = new Test();

test.Id = Convert.ToInt32(sdr["Id"].ToString());
test.Name = (string)sdr["name"];
test.LinkId = (int)sdr["LinkId"];
test.Classid = (int)sdr["ClassId"];
sdr.Close();
return test;
}
else
{
sdr.Close();
return null;
}

}
孟子E章 2010-09-16
  • 打赏
  • 举报
回复
你就
select max(Id)
出一个字段,怎么能读取到

test.Id = Convert.ToInt32(sdr["Id"].ToString());
test.Name = (string)sdr["name"];
test.LinkId = (int)sdr["LinkId"];
test.Classid = (int)sdr["ClassId"];

这4个字段的内容呢?
bancxc 2010-09-16
  • 打赏
  • 举报
回复
很显然 select 列表中 没有 sdr中索引列名

111,129

社区成员

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

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

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